为什么我的 firestore 集合返回 0 个文档

jim*_*jon 1 swift google-cloud-firestore

这是我的数据库。

在此处输入图片说明

这是我的代码

 let db = Firestore.firestore()

                    let defaults = UserDefaults.standard
                    let userId: String! = defaults.string(forKey: "UserUUID")

                    db.collection("Portfolios")
                        .whereField("users." + userId, isEqualTo: true)
                        .limit(to: 1)
                        .getDocuments() { (querySnapshot, err) in
                            if let err = err {
                                print("Error getting documents: \(err)")
                            } else {

                                for portfolioDocument in querySnapshot!.documents {

                                    print("Portfolio: \(portfolioDocument.documentID) => \(portfolioDocument.data())")
                                    let portRef =  db.collection("Portfolios").document("portfolioDocument.documentID")

                                    portRef.getDocument { (document, error) in
                                        if let document = document {
                                            print("Document data: \(document.data())")


                                            portRef.collection("Accounts").getDocuments() { (querySnapshot, err) in
                                                if let err = err {
                                                    print("Error getting documents: \(err)")
                                                } else {
                                                    var docs:[DocumentSnapshot] = []
                                                    for document in querySnapshot!.documents {
Run Code Online (Sandbox Code Playgroud)

我什至对“Mogu...”文档ID 进行了硬编码,但没有任何效果。我缺少的显而易见的东西是什么?

querySnapshot.documents 在最后一行是 0:

  for document in querySnapshot!.documents {
Run Code Online (Sandbox Code Playgroud)

编辑:这是返回 0 个文档的最后一个查询。剩下的工作:

 no, that has no effect on the top level as that is successful. It is the last query that is brings 0 documents:  portRef.collection("Accounts").getDocuments() { (querySnapshot, err) in
                                                if let err = err {
                                                    print("Error getting documents: \(err)")
                                                } else {
                                                    var docs:[DocumentSnapshot] = []
                                                    for document in querySnapshot!.documents {
Run Code Online (Sandbox Code Playgroud)

Jua*_*ara 7

您的 Accounts 集合中的 Coinbase 和 Default 文档实际上并不存在,请参阅控制台中不存在的文档。在您的屏幕截图中,请注意 Coinbase 和 Default 的文档名称是斜体和灰色。这表明这些文档不是直接创建的,而是位于确实存在的更深层次嵌套文档的路径上。

尝试在 Coinbase 和 Default 中设置字段值。这应该让它们出现在您的查询中。

  • 哇。那是晦涩难懂的,让我沮丧了好几个小时。谢谢。 (3认同)