mi base de datos de firestore se ve así:
grupos (colección) => grupo de cierta identificación (doc) => cuestionarios (subcolección)
Todo lo que quiero hacer es escribir una consulta en js que devuelva una matriz de todas las pruebas de un grupo con una identificación dada
El código que escribí se ve así:
export const fetchQuizzesFirebase = async function (idGroup) { if (!idGroup) return []; const quizzes = await firestore .collection(`groups`) .doc(idGroup) .collection(`quizzes`) .get(); return quizzes.filter(doc => doc.exists).map(doc => ({ id: doc.id, ...doc.data() })); }Pero no funciona y parece que no puedo arreglarlo. ¿Qué me estoy perdiendo?
Su consulta parece correcta, pero debe usar map en la propiedad .docs en lugar de QuerySnapshot . También me aseguraré de que exista ese ID de grupo por console.log(idGroup) y también que .filter() sea redundante. Ha recibido una instantánea de consulta y todos los documentos que existen.
console.log(`${quizzes.size} quizzes found`) // Check quiz count return quizzes.docs.map(doc => ({ id: doc.id, ...doc.data() })); ^^^^ Usar un map solo servirá.