Estoy tratando de obtener datos de una subcolección de Firestore. Ni siquiera sé si eso es legal, pero creé una consulta anidada porque quiero poner los datos que recupero en una matriz de "lista", por eso intenté anidarlos. El problema que tengo es que el bucle externo termina primero y luego comienza el interno. Eso me impide poner los datos en "matriz de lista". ¿Como puedo resolver esto?
const fetchPosts = async () => { try { const list = []; const profileRef = firestore .collection("users") .doc(auth.currentUser.uid); const doc = await profileRef.get(); setDoc(doc); await firestore .collection("posts") .orderBy("postTime", "desc") .get() .then((querySnapshot) => { //console.log("Total Posts: ", querySnapshot.size); querySnapshot.forEach((doc) => { const pId = doc.id; const path = []; firestore .collection("posts") .doc(pId) .collection("route") .get().then((querySnapshot)=>{ querySnapshot.forEach((document) => { const array = document.data(); const route = Object.values(array) console.log("route",route) path.push(route) }) }) console.log("path",path) const { userId, userName, userSurname, post, postImg, postTime, userImg, like, comment, likeByUsers, } = doc.data(); list.push({ id: pId, userId, userName, userSurname, userImg: userImg, post, postImg, postTime: postTime, liked: false, like, comment, likeByUsers, }); }); }); setPosts(list); if (loading) { setLoading(false); } //console.log("Posts: ", posts); } catch (e) { console.log(e); } };