oye, tengo datos que se ven así en mi base de datos de Firestore
lo que quiero hacer es obtener todas las carpetas para un usuario específico y su subcolección, cuyo resultado debería verse así
data = [{folderId: "randomkeyGenerator" , folderTitle: "work", folderIcon: "👍🏻", Tasks: [{},{},{},{}]}, {other folder etc....}]aquí está mi código con el gancho useEffect. Hice todo bien, pero aún muestra una matriz vacía o, a veces, solo muestra campos de carpeta sin Tareas o una matriz vacía en las tareas. Aquí está el resultado.
Array [ Object { "Tasks": Array [], "folderIcon": "😨", "folderId": "3QwC21noAwmvUAVXhJfs", "folderTitle": "Work", }, Object { "Tasks": Array [], "folderIcon": "🤵🏿", "folderId": "ewRYhuI1TGxL1EhGq5ZB", "folderTitle": "Untitled", }, ]aquí está mi código:
useEffect(() => { setLoading(true); const subscriber = taskRef .where("userID", "==", user.userId) .orderBy("createdAt") .onSnapshot((querySnapshot) => { const queryData = []; querySnapshot.forEach((documentSnapshot) => { const queryObject = { folderId: documentSnapshot.id, folderIcon: documentSnapshot.data().Icon, folderTitle: documentSnapshot.data().name, Tasks: [], }; documentSnapshot.ref .collection("Tasks") .where("userID", "==", user.userId) .onSnapshot((querySnapshotTasks) => { querySnapshotTasks.forEach((documentSnapshotTask) => { queryObject.Tasks.push({ ...documentSnapshotTask.data(), key: documentSnapshotTask.id, }); }); }); queryData.push(queryObject); }); console.log(queryData); setData(queryData); setLoading(false); }); return () => subscriber(); }, []);