Swiftui + Firestore-无法访问Firestore中的字段

时间:2020-06-21 20:38:11

标签: firebase google-cloud-firestore swiftui

试图访问Firestore中的特定字段,但似乎无法弄清楚。在我的文档中,有一张这样的地图:

data structure

以下是我的代码。 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
             }
        }
    }

1 个答案:

答案 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