swift - 从 Firestore 文档中获取单个元素
问题描述
如何从 Firebase 中的文档中获取单个项目?
我可以使用以下代码获取所有元素:
let key = UserDefaults.standard.value(forKey: "uid") as! String
let docRef = firebaseDB.collection("user").document(key)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let dataDescription = document.data().map(String.init(describing:))
print("Document data: \(dataDescription)")
} else {
print("Document does not exist")
}
}
我只希望得到姓名和电话号码。如何过滤我的结果?
解决方案
FirebaseFirestore 有一种方便的缓存单个文档的方法:
首先,您需要通过 ID 指定文档:
let key = UserDefaults.standard.value(forKey: "uid") as? String ?? "Null" // Unique user key
let docRef = db.collection("user").document(key)
获取文档:
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let docData = document.data()
// Do something with doc data
} else {
print("Document does not exist")
}
}
访问文档数据:
let status = docData!["phone"] as? String ?? ""
推荐阅读
- vb.net - 使用 VBScript 和 Azure Key Vault 从 Azure Web App 访问 Azure SQL 数据库
- python - 如何要求 n 并仅在一行中键入 n 个数字
- firebase - 在 Google Firestore 中处理查询游标的正确方法?(Vue/Nuxt.js)
- python - 如何在超类中引用子类?
- php - 即使我返回响应,Symfony 也会抛出“没有返回响应”错误
- scope - Tcl/Tk: scope of variables for a function within a function
- firebase - 来自 Flutter 中 firebase_auth 插件的更多用户数据
- c++ - C++ - 无法从队列中删除元素
- php - PHP:根据与键值相关的术语对多维数组进行排序
- javascript - 如何使用 Node-ews 集成 Exchange 2010 版本的投票选项?