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

205
Visualizações
¿Cómo obtengo un documento y una colección anidada en un documento de una colección de Cloud Firestore con la versión 9 del SDK de Modular Web?

Estoy siguiendo un tutorial en el que uso Firestore para recuperar datos de una colección. hay dos cosas principales: recuperar DOCUMENTO y COLECCIÓN que está anidado dentro de ese DOCUMENTO. Mi código a continuación se basa en FireStore web v8, y quiero convertirlo a la versión web 9. ¡Lo encontré muy complicado!

 useEffect(()=>{ if(roomId){ db.collection('rooms').doc(roomId).onSnapshot(snapshot => { setRoomName(snapshot.data().name); }); db.collection('rooms').doc(roomId).collection("messages").orderBy("timestamp","asc").onSnapshot(snapshot => { setMessages(snapshot.docs.map(doc => doc.data())) }); } },[roomId])
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Prueba esto:

 import { collection, query, where, doc, onSnapshot } from "firebase/firestore"; useEffect(() => { onSnapshot(doc(db, "rooms", roomId), (doc) => { setRoomName(doc.data().name) }); const q = query(collection(db, "rooms", roomId, "messages"), orderBy("timestamps")); onSnapshot(q, (querySnapshot) => { setMessages(querySnapshot.docs.map(doc => doc.data())) }); }, [roomId])

También echa un vistazo:

  • Actualizaciones en tiempo real con Cloud Firestore

  • Firestore: ¿Cuál es el patrón para agregar nuevos datos en Web v9?

about 4 years ago · Juan Pablo Isaza Relatório

0

¡Este debería hacer el trabajo!

 useEffect(() => { if(roomId){ onSnapshot(doc(db, "rooms", roomId), (document) =>{ setRoomName(document.data().name); }); const msgColl = query(collection(db, "rooms", roomId, "messages"), orderBy("timestamp")); onSnapshot(msgColl, (querySnapshot) => { setMessages(querySnapshot.docs.map(msg => msg.data())) }); } }, [roomId])
about 4 years ago · Juan Pablo Isaza Relatório

0

Esto es solo para otros....

V8:

 export const fetchAccountAssets = (userID, accountID) => db() .collection('Accounts') .doc(userID) .collection('Assets') .get() .then((querySnapshot) => querySnapshot);

V9:

 export const fetchAccountAssets = async (userID, accountID) => { return await getDocs(collection(db, 'Accounts', userID, 'Assets')); }

No creo que tenga que esperar aquí, pero bueno...

about 4 years ago · Juan Pablo Isaza Relatório
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