firebase - Firestore 获取子集合父文档 ID - JavaScript

标签 firebase google-cloud-firestore

我的 Firestore 数据库中有以下结构:几个 UserLists收藏,其中包含 Users .每个用户可能有一个 Notes子集。

我正在执行一个运行良好的子集合组查询,返回来自 Notes 子集合的注释。

我的问题是,从 Notes 子集合中检索到的 Note 文档,我可以获得父文档 ID 吗?这将是下面示例中的用户 1。使用 JavaScript。

Collection: UserList 1
  Doc: User 1
    Subcollection: Notes
      Doc: Note 1

Collection: UserList 2
  Doc: User 1
    Subcollection: Notes
      Doc: Note 1

最佳答案

您可以使用以下方法之一:

  const query = ......;
  query
    .then(function(querySnapshot) {
      querySnapshot.forEach(function(doc) {
        console.log(doc.ref.path);
        console.log(doc.ref.parent.parent.id);
      });
    })

在每个 QueryDocumentSnapshot ,您可以使用 ref 属性,返回 DocumentReference .然后,在这个 DocumentReference您使用 path 属性,它将返回完整路径,例如UserList1/User1/Notes/Doc1 .
或者您使用 parent DocumentReference 的属性(property),返回 CollectionReference ,然后您再次使用 parent 属性(这次是 CollectionReference)来获取父级 DocumentReference然后是 id此父项的属性 DocumentReference .

关于firebase - Firestore 获取子集合父文档 ID - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61011280/

相关文章:

android - 加密您的 Firestore 数据

javascript - firestore transaction.set(ref, data, {merge : true}) and transaction. update(ref, data) 之间有什么区别?

mysql - 谷歌云功能 : Delete firestore docs and insert the result of a SQL Query leads to timeout

firebase - Flutter中Firestore的数据源可以手动设置为只来自Cache吗?

java - Google Cloud Compute 上的 Firestore PERMISSION_DENIED

java - 在 recyclerview 中选择项目时如何从 Firebase 中删除值?

firebase - 从云函数删除 Firestore 文档中的字段

swift - 如何在给定 Swift 中的键的情况下返回映射数据的值?

javascript - 在 Node 应用程序之外使用 Node 包

firebase - Firebase ML套件即使在Flutter应用中也为相同的面部提供了不同的面部跟踪ID