Soy principiante en firestore. Mi consulta siempre proporciona los mismos datos independientemente del valor que paso a la función startAfter().
aquí está el código:
const fetchMore = async () => { const q = query( collection(db, 'chat-messages'), orderBy('createdAt', 'asc'), startAfter(23), limit(5), ); const querySnapshot = await getDocs(q) querySnapshot.forEach(doc => { console.log(doc.data()) }) }¡Gracias por leer y ayudar! Que tengas un lindo día
aquí está la consola.log
No estoy seguro de qué tipo son los datos en su campo startAt , pero supongo que es una fecha o una Timestamp de tiempo de Firestore.
La paginación en Firestore no se basa en compensaciones numéricas, como puede estar acostumbrado en otras bases de datos, sino que se basa en los llamados objetos de cursor: conocer los valores y/o la ID del documento que desea comenzar después.
Por lo tanto, deberá ingresar la marca de tiempo después de la cual desea comenzar, no la cantidad de documentos que desea omitir. Entonces, por ejemplo, para obtener todos los documentos con un createdAt después de ahora, podría hacer:
startAfter(Timestamp.now())Para obtener más información sobre esta forma de paginación, consulte la documentación sobre la paginación de datos con cursores de consulta .