Cloud Firestore 无法检索文档或字段

Posted

技术标签:

【中文标题】Cloud Firestore 无法检索文档或字段【英文标题】:Cloud Firestore unable to retrieve document or field 【发布时间】:2020-08-07 06:35:40 【问题描述】:

我使用了 Firebase 文档提供的示例代码,它会打印出错误消息。我不知道问题是在代码中还是在数据库结构中,因为还有子集合。在这种情况下,我正在尝试检索“Home Title”字段,但是我听说这是不可能的(我可能错了),所以我试图检索“Sample Wedding”文档,但无济于事。这是我第一次使用 Swift 和 Firestore 编写项目。

这是我的代码:

    let db = Firestore.firestore()
    let docRef = db.collection("Weddings").document("Sample Wedding")

    docRef.getDocument  (document, error) in
    if let document = document, document.exists 
        let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
        print("Document data: \(dataDescription)")
     else 
        print("Document does not exist")
    

这是我的数据库结构: ]

【问题讨论】:

具体发生在哪里以及发生了什么错误? 它打印出“文档不存在”,即使应该有一个。 【参考方案1】:

你可以这样试试

  let db = Firestore.firestore()
  db.collection("Weddings").document("Sample Wedding").getDocument  
  (documentSnapshot, err) in
        if let err = err 
            print("Error getting documents: \(err)")
         else 
            print("Document data: \(documentSnapshot)")
            if let title = documentSnapshot.get("Home Title") as? String 
            print(title)
           
        
    

【讨论】:

非常感谢!有用!你知道我将如何显示一个字符串数组的字段吗? 如果让 title_array = documentSnapshot.get("Home Title") as? [字符串] print(title_array)

以上是关于Cloud Firestore 无法检索文档或字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中从 Cloud FireStore Firebase 访问特定字段

如何使用颤振和飞镖从 Cloud Firestore 检索特定数据?

无法从 Firestore 文档中删除字段 (Flutter)

Cloud Firestore 更改字段名称

Cloud Firestore 文档锁定

即使文档中缺少请求的字段,如何安全地从 cloud-firestore 获取数据?