繁体   English   中英

如何在快照侦听器中获取子集合的父文档?

[英]How to get parent document of subcollection in a snapshot listener?

我有一个附加到子集合的快照侦听器(此子集合记录对父文档的所有更改)。 对于此子集合中的每个文档,我想检索父文档。 我应该在下面的代码中用什么替换 XXXXXXXXXXX?

  const unsubToProfilesRecentlyUpdatedByUser = onSnapshot(qChangedByThisUser, (querySnapshot) => {
    store.state.currentProfileList = [];
    querySnapshot.forEach((doc) => {

      const parentProfileRef = doc(db, "profiles", XXXXXXXXXXX);
      //Get the parent Profile of this Activitylog
      getDoc(parentProfileRef)
        .then((profileSnap) => {
          //store resulting profile in object
          let profile = profileSnap.data()
          profile.id = profileSnap.id

          store.state.currentProfileList.push(profile)
        })

    });
    //console.log("Current cities in CA: ", cities.join(", "));
  });

我已经尝试了其他帖子中的许多示例,并且在仅收听更改时设法使其工作,在这种情况下

const parentProfileRef = doc(db, "profiles", change.doc.ref.parent.parent.id);

但是当我像上面那样收听整个 state 时,我做不到。

感谢您的任何提示!

如果docDocumentSnapshot object,那么您可以像这样获得其父级的DocumentReference

const parentRef = doc.ref.parent.parent;

然后,您可以将其传递给getDoc() 无需使用doc()构建另一个 DocumentReference。

这适用于所有 DocumentSnapshot 对象。 它对您用于获取 DocumentReference 的方法并不特殊。 请务必使用链接的 API 参考来了解如何使用从 Firestore API 返回的各种对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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