Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

138
Visualizações
La colección y la subcolección onSnapshot de Firebase se fusionan con el gancho useEffect

oye, tengo datos que se ven así en mi base de datos de Firestore

  • carpetas
    • randomkeyGenerator: tiene campos como el nombre de la carpeta, el icono, etc.
      • la subcolección llama Tareas: tiene muchos documentos y cada documento tiene valores como título, etc.

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(); }, []);
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda