Swift Can';t从Firestore文档快照中提取日期或时间戳
我正在检索一组包含Swift Can';t从Firestore文档快照中提取日期或时间戳,swift,firebase,date,google-cloud-firestore,timestamp,Swift,Firebase,Date,Google Cloud Firestore,Timestamp,我正在检索一组包含字符串、日期和时间戳的事件文档字符串没有问题,但最近我在我的模型中添加了日期和时间戳,它们总是返回为nil,我已将其设置为默认值,尽管我可以在Firebase控制台中清楚地看到它们存储正确 初始化文档快照检索设置 init?(snapshot:DocumentSnapshot){ self.eventId = snapshot.get("eventId") as? String ?? "No event Id" self.byId = snapshot.get
字符串
、日期
和时间戳
的事件文档<代码>字符串没有问题,但最近我在我的模型中添加了日期
和时间戳
,它们总是返回为nil,我已将其设置为默认值,尽管我可以在Firebase控制台中清楚地看到它们存储正确
初始化文档快照检索设置
init?(snapshot:DocumentSnapshot){
self.eventId = snapshot.get("eventId") as? String ?? "No event Id"
self.byId = snapshot.get("byId") as? String ?? "No uid"
self.adminUser = snapshot.get("adminUser") as? String ?? "No admin user"
//self.eventCreated = snapshot.get("eventCreated") as? Timestamp ?? "No Event Created Date"
self.eventName = snapshot.get("eventName") as? String ?? "No Event Name"
self.eventLocation = snapshot.get("eventLocation") as? String ?? "No Location"
self.eventStart = snapshot.get("eventStart") as? Date ?? nil
self.eventEnd = snapshot.get("eventEnd") as? Date ?? nil
}
文档快照的结果
adminUser: "",
byId: "juYtTP509rhXYPd433",
eventCreated: nil, //Timestamp retrieved as nil
eventId: "gC2RVdUuB9CD66JEYM18",
eventName: "test",
eventLocation: "",
eventStart: nil, //Date retrieved as nil
eventEnd: nil, //Date retrieved as nil
事件模型
struct Event {
var adminUser = ""
var byId = ""
var eventCreated:Timestamp?
var eventId = ""
var eventName = ""
var eventLocation = ""
var eventStart:Date? = nil
var eventEnd:Date? = Date(timeIntervalSince1970: 0)
请告诉我是否需要在此处添加方法以获得更好的上下文?Firestore没有内部日期类型。在内部,当它接收到日期或时间戳作为输入时,它将创建一个时间戳,因此这是您的代码在任何情况下都应该期望从DocumentSnapshot中产生的内容(而不是日期)。要将该
时间戳
转换为日期
,打电话给它。这将是一个相当多的返工,让这继续下去,但我会开始朝这个方向前进。谢谢