A continuación se muestra el código que probé. Soy realmente nuevo en la programación.
var records_per_page = 4; var first = firebase.firestore().collection("Posts").limit(records_per_page); first.get().then((snapshot)=> { document.getElementById("post-container").innerHTML = ''; snapshot.forEach(function (taskValue) { if(snapshot.size >= 1){ showPosts(taskValue) $("#next").click(function(){ var lastVisible = ""; lastVisible = snapshot.docs[snapshot.docs.length-1]; showMorePosts(records_per_page,lastVisible) }) } }); } );Pero el código solo obtiene el primer y el segundo cuatro documentos. He creado una esencia aquí para mostrar ambos métodos showMorePosts(records_per_page,lastVisible) y showPosts(records_per_page). Stackoverflow no me permite agregar mucho código.
Hay dos formas de hacer esto, una es usando el offset y la otra usando las funciones startsAfter() y limit() .
Puede usar la función de offset para obtener los documentos, pero generalmente no es una gran opción, porque cuando llama a este método de compensación en las bibliotecas del servidor, aún se le factura por las compilaciones que está compensando.
Por lo tanto, por lo general, es mejor usar startsAfter() y limit() , ya que solo se facturarán por el trabajo real que haya realizado y ninguno por el que se haya saltado.
También puede intentar seguir este tutorial sobre Firestore Pagination para principiantes.
Logré crear algún tipo de paginación para que cuando una persona haga clic en el botón siguiente, el siguiente conjunto de cuatro publicaciones reemplace al anterior, continuamente. Sin embargo, todavía estoy averiguando cómo implementar la funcionalidad del botón anterior para que una persona pueda cargar los conjuntos de publicaciones anteriores sin tener que actualizar la página. Creé una esencia aquí . Puede consultarlo para obtener más avances y asesoramiento.