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

257
Views
Haz una consulta con el filtro "dónde" en Firestore

Quiero filtrar y obtener elementos específicos según el ID de categoría, donde uso el método "dónde" y el operador "==".

Tengo esta colección de Firestore llamada "tarea", donde los documentos se dividen por ID de usuario y cada documento para un usuario contiene una variedad de tareas diferentes. La estructura se ve aquí: Ingrese la descripción de la imagen aquí

Así es como agrego las tareas de matriz para un usuario en la colección de tareas:

 const addToFirebase = async() => { if(dataFetch) { await setDoc(doc(db, "task", `${firebase.auth().currentUser.uid}`), { tasks: tasks }, {merge: true}); } }

Y así es como he intentado hacer mi consulta que no funciona:

 const getFilteredTasks = async() => { const collectionRef = collection(db, "task", `${firebase.auth().currentUser.uid}`, "tasks"); const q = query(collectionRef, where("categoryID", "==", item.id)); console.log('outside snapshot') console.log(item.id) const querySnapshot = await getDocs(q); querySnapshot.forEach((doc) => { console.log(doc.data()); console.log('inside snapshot') }); }

Cuando se llama a la función anterior, registra la "instantánea externa" y el item.id correcto, que es el ID de categoría para cada tarea, pero no registra el doc.data() ni la "instantánea interna".

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

0

Configuró su consulta como si cada tarea fuera un documento separado en una colección, pero según la captura de pantalla y la forma en que configura los datos, solo tiene un documento por usuario. Ese documento contiene todas las tareas individuales. Entonces, para acceder a eso, obtendría el documento y usaría el código del lado del cliente para usar las partes de los datos que le interesan:

 const getFilteredTasks = async () => { const docRef = doc(db, 'task', `${firebase.auth().currentUser.uid}`); const snapshot = await getDoc(docRef); const data = snapshot.data(); if (!data) { return []; } else { return data.tasks.filter(task => task.categoryID === item.id); } }
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!