Firestore:我如何用documentID读取子收集数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firestore:我如何用documentID读取子收集数据?相关的知识,希望对你有一定的参考价值。

我怎么只能阅读当前的用户评论?对于“我自己的评论”页面。我的代码运行,但如果(where field:currentuid)不存在则不打印(“无数据”)。只打印(“documents.data()”)

    let db = Firestore.firestore()
    db.collection("tweets").getDocuments { (snapshot, error) in
        for document in snapshot!.documents {
            self.db.collection("tweets").document(document.documentID).collection("comments").whereField("uid", isEqualTo: self.uid).getDocuments(completion: { (snapshot2, error2) in
                for document2 in snapshot2!.documents {
                    print("(document2.documentID) -> (document2.data())")
                }
            })
        }
    }
答案

我想你正在寻找这个:

let db = Firestore.firestore()
db.collection("tweets").getDocuments { (snapshot, error) in
    for document in snapshot!.documents {
        self.db.collection("tweets").document(document.documentID).collection("comments")
          .whereField("uid", isEqualTo: self.uid).getDocuments(completion: { (snapshot2, error2) in
            if let err = err {
                print("Error getting documents: (err)")
            } else {
                if snapshot2.isEmpty {
                    print("No comments from (self.uid) found")
                } else {
                    for document2 in snapshot2!.documents {
                        print("(document2.documentID) -> (document2.data())")
                    }
                }
            }
        })
    }
}

请注意,正在进行有关集合组查询的工作,这将允许您在名为comments的所有集合中使用单个查询执行上述操作。

以上是关于Firestore:我如何用documentID读取子收集数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Flutter 访问 Firestore 中特定配方的 documentId?

在嵌套对象中使用firestore的FieldPath.documentId()

如何使用 SwiftUI 中的 documentID 删除特定的 Cloud Firestore 文档?

比较 Flutter web 中的两个字符串/比较两个 Cloud Firestore 对象的 documentID

Cloud Firestore 安全规则 -(读取、写入)

按 T​​imeStamp 升序排列 Firestore 数据