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

Kun*_*hni 9 ios firebase swift google-cloud-firestore

这是我的数据结构:

数据结构

我有一个试图从Cloud Firestore访问数据的ios应用程序.我成功地检索了完整的文档并查询了文档.但是,我需要访问特定文档中的特定字段.我如何拨打电话,从swift中的Firestore中检索一个字段的值?任何帮助,将不胜感激.

Dou*_*son 8

没有API只从文档中提取单个字段.使用getDocument()时始终会获取整个文档.这意味着也没有办法使用安全规则来保护文档中的单个字段与其他字段不同.

如果您尝试最小化通过网络传输的数据量,可以将该单独字段放在主文档的子集合中的自己的文档中,并且可以单独请求一个文档.

另见讨论的主题.

  • 此功能应添加到 Mobile SDK 中。 (3认同)
  • @wonsuc 请随意提出功能请求。http://firebase.google.com/support/contact/bugs-features (2认同)

小智 8

这实际上非常简单,并且可以使用内置的 firebase api 实现。

        let docRef = db.collection("users").document(name)

        docRef.getDocument(source: .cache) { (document, error) in
            if let document = document {
                let property = document.get(field)
            } else {
                print("Document does not exist in cache")
            }
        }
Run Code Online (Sandbox Code Playgroud)


Yas*_*ari 5

其实有一个方法,使用Firebase本身提供的这个示例代码

let docRef = db.collection("cities").document("SF")

docRef.getDocument { (document, error) in
    if let document = document, document.exists {
        let property = document.get('fieldname')
        print("Document data: \(dataDescription)")
    } else {
        print("Document does not exist")
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您仍然检索整个文档,然后从中删除一个字段。 (4认同)