Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

166
Views
Obtener atributos de objetos de Firestore de una matriz

Solía tener un documento con la siguiente estructura:

ViejoDoc:

members: ['userId1', 'userId2', 'userId3']

Luego escribí una consulta para recuperar todos los documentos relevantes para un usuario:

 const docsSnapshot = await getDocs(query( collection(db, 'organisations'), where('members', 'array-contains', user.uid) ))

Esto funcionó bien, pero ahora necesito almacenar los nombres de los usuarios además de:

members: [{ id: 'userId1', name: 'John Smith' }, { id: 'userId2', name: 'Jane Smith' }]

El desafío al que me enfrento es que no estoy seguro de cómo construir una consulta que produzca los mismos resultados que la primera, es decir, cómo recupero todos los documentos donde cualquiera de los objetos tiene un atributo de id correspondiente al user.uid

Intenté usar: where('members.id', '==', user.uid) pero eso no funcionó.

¿Se puede construir una consulta para hacer esto?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Firestore no es bueno en este tipo de consultas... Consideraría reestructurar su matriz de miembros para que sea un objeto con user.id como claves.

 members : { userId1: { name: "fred" }, userId2: { name: "martha" } }

Otra forma, y tal vez más alineada con la forma en que Firestore 'quiere' que lo haga, sería crear otros members de la subcolección con un nuevo documento para cada miembro con el doc.id establecido en user.id.

Este enfoque también le permite agregar fácilmente más datos a cada miembro, con el beneficio adicional de realizar consultas sobre miembros que no solo se basan en el ID de usuario.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!