我如何获取 Firestore 数据库 iOS Swift 中对象键的值

Posted

技术标签:

【中文标题】我如何获取 Firestore 数据库 iOS Swift 中对象键的值【英文标题】:How do i get the value for the key of an object in a firestore database iOS Swift 【发布时间】:2021-05-18 22:07:07 【问题描述】:
let db = Firestore.firestore()
let query = db.collection("users").whereField("email", isEqualTo: email).value(forKey: "email")

这是我的代码。我想从 Firestore 数据库中检索一个对象。然后我想检索一个键的值。问题是它会因以下代码而崩溃。

任何修复或类似的东西?

【问题讨论】:

修复包含在文档中 - 需要更多代码来检索查询数据。见Execute a query 【参考方案1】:

您的代码尚未从 Firestore 读取任何内容:

let query = db.collection("users").whereField("email", isEqualTo: email).value(forKey: "email")

这仅定义了一个查询(在执行时)将在users 集合中查找文档。事实上,我想你会想把它留在:

let query = db.collection("users").whereField("email", isEqualTo: email)

现在您需要get data once 或listen for realtime updates。第一个最简单:

query.getDocuments()  (querySnapshot, err) in
    if let err = err 
        print("Error getting documents: \(err)")
     else 
        for document in querySnapshot!.documents 
            print("\(document.documentID) => \(document.data())")
        
    

这里的document.data()是一个字典,所以你可以通过字典或者document.get("field")获取任意字段的值。

【讨论】:

以上是关于我如何获取 Firestore 数据库 iOS Swift 中对象键的值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firestore (iOS) 中获取对象

Nuxtjs 在 asyncData 中获取 Firestore 数据

如何在 swift iOS Firestore 中获取单元格文档 ID?

我正在尝试从我的 ios Swift 项目中的 Firestore 数据库中获取数据

如何根据 Firestore 数据库中的字段从集合中搜索文档?

如何从firestore获取当前用户数据?