[英]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 时,我做不到。
感谢您的任何提示!
如果doc
是DocumentSnapshot object,那么您可以像这样获得其父级的DocumentReference :
const parentRef = doc.ref.parent.parent;
然后,您可以将其传递给getDoc()
。 无需使用doc()
构建另一个 DocumentReference。
这适用于所有 DocumentSnapshot 对象。 它对您用于获取 DocumentReference 的方法并不特殊。 请务必使用链接的 API 参考来了解如何使用从 Firestore API 返回的各种对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.