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

184
Vistas
Firestore: obtenga múltiples documentos a través de fieldPath complejo (función where)

Guardé diferentes productos en mi Firestore y están disponibles para su compra en diferentes días de la semana. Así que aseguré la disponibilidad en diferentes días como una matriz de 7 valores booleanos en mi Firestore.

 weekdays = [true, true, true, false, false, true, false];

Ahora, si quiero obtener todos los productos que están disponibles el viernes, tendría que hacer algo como esto:

 // assume date.getDay() is 5 const q = query( collection(db, "bakerys", `${bakery.id}`, "products"), where(`weekdays[${date.getDay()}]`, "==", "true") ); const querySnapshot = await getDocs(q);

Esto no parece funcionar. ¿Realmente tengo que almacenar cada día de la semana en su propio valor por separado para que esto funcione o hay una manera de hacer que esto funcione de manera diferente?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede almacenar los días directamente en lugar de un valor booleano como este:

 weekdays = ['Monday', 'Friday'];

Luego ejecuta esta consulta:

 const q = query( collection(db, "bakerys", `${bakery.id}`, "products"), where(`weekdays`, "array-contains", "Monday") );

Esta consulta obtendrá todos los documentos en los que la matriz de weekdays de la semana contenga Monday . Si desea almacenar valores booleanos con índice de día, deberá almacenar un mapa como este:

 weekdays = { 1: true, 5: false }

Aquí puede utilizar la siguiente consulta:

 const q = query( collection(db, "bakerys", `${bakery.id}`, "products"), where(`weekdays.${date.getDay()}`, "==", true) );

Además, tenga en cuenta que su matriz original contiene valores booleanos pero su consulta tenía "true" (cadena). Asegúrese de que los tipos en db y query coincidan.

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