Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

125
Vistas
Firebase 9 Firestore paginate query with setInterval
let lastVisibleSnapshot = 0;
let docQuery;
let myInterval;
const queryLimit = 7; //TODO change limit to less than 500 per second!!!

function myQuery() {

    const queryArgs = [collection(db, "users", UID, "products"), limit(queryLimit)];
    docQuery = (lastVisibleSnapshot == 0) ? query(...queryArgs) : query(...queryArgs, startAfter(lastVisibleSnapshot));

}

async function startReset() {

    myQuery();
    let documentSnapshot = await getDocs(docQuery);
    if (documentSnapshot.empty) {
        console.log("documentSnapshot Empty");
        clearInterval(myInterval);
    } else {
        documentSnapshot.forEach((doc) => {
            console.log(doc.id);
        });
    }
    lastVisibleSnapshot = documentSnapshot.docs[documentSnapshot.docs.length - 1];

}

    myInterval = setInterval(startReset, 1000);

I try to update my Firestore all documents in chunks. The above code works, but I found I shouldn't use interval with async function. Any better solution?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda