Gracias de antemano por tu tiempo.
Estoy tratando de escuchar actualizaciones en tiempo real de un documento que vive en el fondo después de algunos niveles anidados.
¿Es esto posible o debería escuchar todos los cambios del documento de primer nivel y filtrar en el cliente?
Así es como se ve la estructura de mi base de datos:
articles: { 'article-one': { author: "jane doe", status: "stock", similar: [ {articleId: "article20", type: "sold"}, {articleId: "article21", type: "stock"}, ... ] } }Estoy tratando de escuchar actualizaciones en tiempo real sobre el artículo con 'articleId' de "article20" dentro de la matriz SIMILAR.
Esto es lo que estoy intentando:
const myQuery = query(collection(db, "articles", article-one, "similar"), where("articleId", "==", "article20")); const unsub = onSnapshot(myQuery, (querySnapshot) => { const selectedArticles = [] querySnapshot.forEach((doc) => { selectedArticles.push(doc.data()) }) console.log(selectedArticles); //output: [] })Si está intentando consultar elementos de una matriz, eso no es posible en este momento. Tendrías que hacer cualquiera de los siguientes:
const myQuery = doc(db, "articles", article-one); const unsub = onSnapshot(myQuery, (docSnapshot) => { const similar = docSnapshot.data().similar const selectedArticles = similar.filter(a => a.articleId === "article20") console.log(selectedArticles); })articleId . de artículo dado.