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

123
Vistas
Cree consultas de Firebase dinámicamente

Me pregunto si es posible crear consultas de firebase dinámicamente, en este momento estoy usando una variable para determinar si startAfter debe incluirse o no.

Como puede ver, esto está causando un código duplicado, solo para una variable

 export async function fetchUserPhotosPaginated(userId: string, lastUserPhoto?: QueryDocumentSnapshot): Promise<QuerySnapshot> { if (lastUserPhoto) { return await getDocs(query( collection(db, 'photos'), orderBy('createdAt', 'desc'), startAfter(lastUserPhoto), where('user.id', '==', userId), limit(5) )) } return await getDocs(query( collection(db, 'photos'), orderBy('createdAt', 'desc'), where('user.id', '==', userId), limit(5) )) }

He intentado

  • Use startAfter(null) , esto no dio el efecto deseado
  • asigne la consulta a una variable let q = query(...) para luego actualizar esa consulta usando q = q.startAfter(...) esto tampoco funcionó
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El segundo método para agregar startAfter condicionalmente es correcto, pero su sintaxis para actualizar la consulta no lo es. Intente refactorizar la función como se muestra a continuación:

 export async function fetchUserPhotosPaginated(userId: string, lastUserPhoto?: QueryDocumentSnapshot): Promise<QuerySnapshot> { // Initial query let q = query(collection(db, 'posts'), orderBy('createdAt', 'desc')) // Add startAfter is lastUserPhoto is present if (lastUserPhoto) q = query(q, startAfter(lastUserPhoto)); // Add remaining conditions q = query(q, where('user.id', '==', userId), limit(5)); return await getDocs(q) }

También puede agregar todas las condiciones en una matriz como se explica en la siguiente respuesta:

Cláusula condicional where de Firestore usando Modular SDK v9

about 4 years ago · Juan Pablo Isaza Denunciar
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