繁体   English   中英

根据firestore中的引用路径获取子集合的文档

[英]Get documents of subcollections based on reference path from firestore

嘿伙计们,根据我已经发布的先前讨论的问题,我还有另一个问题。 我认为为此创建一个新问题会更好。 也许其他一些人也需要知道这一点。

在此处输入图像描述

所以我已经要求根据所有子集合ParentDocumentgroup 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM