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

198
Views
¿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 answers
Answer question

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 Report

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 Report

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 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!