试图访问Firestore中的特定字段,但似乎无法弄清楚。在我的文档中,有一张这样的地图:
以下是我的代码。 Hour由于某种原因仅返回nil。我尝试了许多不同的方法,包括[“ 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
}
}
}
答案 0 :(得分: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
来存储与日期时间相关的数据。有关更多详细信息,请参见documentation。