[英]Get documents of subcollections based on reference path from firestore
嘿伙计们,根据我已经发布的先前讨论的问题,我还有另一个问题。 我认为为此创建一个新问题会更好。 也许其他一些人也需要知道这一点。
所以我已经要求根据所有子集合ParentDocument
的group query
来获取kurzwaffensub
这是代码
const kurzRef = collectionGroup(db, 'kurzwaffensub' );
const HE = query(kurzRef,where("kurzHersteller", "==", `${kurzHersteller}` ));
else if (kurzHersteller) {
const getWaffenDaten = async () => {
const hersteller = await getDocs(HE);
const data = [];
for (const doc of hersteller.docs) {
const parentDoc = await getDoc(doc.ref.parent.parent);
const { Name } = parentDoc.data();
data.push({
...doc.data(),
Name,
});
}
console.log(data)
}
getWaffenDaten()
这段代码已经可以正常工作了。 但现在我还需要用户的图片,因此我在子集合文档的每个文档中创建了一个reference
。
在红色标记的字段中,值uid
是对名为waffenbilder
的集合的文档的引用,在此文档中,有一个包含用户图像的子集合,我也净接收这些图像。 但我不知道如何得到它+我对嵌套操作非常不熟悉。
在第二张图片中,您可以看到document
具有与子集合kurzwaffensub
中的reference
相同的值。 目标是使用我在上面发布的if else Statement
在同一个 function 中获取这些图像。
也许我的数据结构很糟糕,我真的不知道我还在尝试学习 JS 和 firebase 所以请不要对我下定论。 :D
因此,从具有“reference”类型的 uid 字段的文档中,您可以执行此操作以获取 waffenbildersub 中的所有图像:
const waffenbilderRef = doc.data().uid;
let subCollectionDocs = await waffenbilderRef.collection("waffenbuildersub").get();
subCollectionDoc.forEach(imageDoc => {
console.log("Sub Document ID: ", imageDoc.id);
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.