【问题标题】:How do i get the value for the key of an object in a firestore database iOS Swift我如何获取 Firestore 数据库 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 数据库中检索一个对象。然后我想检索一个键的值。问题是它会因以下代码而崩溃。
任何修复或类似的东西?
【问题讨论】:
标签:
ios
swift
firebase
google-cloud-firestore
【解决方案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")获取任意字段的值。