Swiftui + Firestore - 无法访问 Firestore 中的字段
Posted
技术标签:
【中文标题】Swiftui + Firestore - 无法访问 Firestore 中的字段【英文标题】:Swiftui + Firestore - Cannot access field in Firestore 【发布时间】:2020-06-21 20:38:11 【问题描述】:尝试访问 Firestore 中的特定字段,但似乎无法弄清楚。在我的文档中,我有一张这样的地图:
以下是我的代码。由于某种原因,小时只是返回零。我尝试了许多不同的方法,包括 ["notificationTime"]["hour"],但似乎无法弄清楚。任何的想法?谢谢!
self.db.collection("routines").whereField("name", isEqualTo: routineName).getDocuments() (querySnapshot, err) in
if let err = err
print ("Error getting documents: \(err)")
else
for document in querySnapshot!.documents
let hour = document.data()["notificationTime.hour"]
print(hour)
return
【问题讨论】:
你能记录document.data()吗? 【参考方案1】:要从地图中读取数据,请使用以下方法:
let db = Firestore.firestore()
db.collection("routines").whereField("name", isEqualTo: routineName).getDocuments() (querySnapshot, err) in
if let err = err
print("Error getting documents: \(err)")
else if let querySnapshot = querySnapshot
for document in querySnapshot.documents
let results = document.data()
if let notificationTime = results["notificationTime"] as? [String: Any]
let hour = notificationTime["hour"] as? Int ?? 0
let minute = notificationTime["minute"] as? Int ?? 0
// ... further handling of your data
话虽如此,我想建议查看Timestamp
s 以存储与日期时间相关的数据。有关详细信息,请参阅documentation。
【讨论】:
以上是关于Swiftui + Firestore - 无法访问 Firestore 中的字段的主要内容,如果未能解决你的问题,请参考以下文章
无法在 SwiftUI 按钮视图中从 Cloud Firestore 获取数据
使用 SwiftUI 从 Cloud Firestore 中的集合“配置文件”中获取数据。无法将类型“[String:Any]”的值分配给类型“UserProfile”
视图模型中的 Firestore 方法未在 SwiftUI onAppear 方法中调用