[英]How to get the complete document path in firebase firestore?
我设法获取了 firestore 中所有“工作表”集合中的所有文档和文档 ID。 参考下面的代码 -
const baseRef = admin.firestore().collectionGroup("sheets").where("date", "==", date);
const querySnap = await baseRef.get();
const docSnap = querySnap.docs;
docSnap.forEach((doc) => {
console.log("DOC ID ---->>>", doc.id);
// Here I want to get all the required documents from 'members' subcollection present inside this document
});
现在,这些文档中的每一个都包含一个名为“成员”的子集合。 我只想要来自“members”集合的文档,其中“memberId”等于“memberId”。 我怎样才能得到这些文件?
我尝试了以下代码,但没有用 -
const baseRef = admin.firestore().collectionGroup("sheets").where("date", "==", date).collectionGroup("members").where("memberId", "==", memberId);
const querySnap = await baseRef.get();
const docSnap = querySnap.docs;
docSnap.forEach((doc) => {
console.log("DOC ID ---->>>", doc.id);
});
它返回以下错误 -
admin.firestore(..).collectionGroup(..).....is not a function
您不能像使用以下方法那样通过调用两次collectionGroup()
方法来定义Query
:
const baseRef = admin.firestore().collectionGroup("sheets").where("date", "==", date).collectionGroup("members").where("memberId", "==", memberId);
一种解决方案是复制member
文档中的date
字段(即将字段值从父工作sheet
文档复制到它们的member
子文档)并定义查询如下:
const baseRef = admin.firestore().collectionGroup("members").where("memberId", "==", memberId).where("date", "==", date);
请注意,您需要构建一个复合索引,并且您的数据库中不应该有其他名为members
的子集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.