我将文档存储在 Cloud Firestore 数据库的集合中。在本文档中,我想要引用文档的存储时间,因此我使用的是 Firestore 的 FieldValue 对象,该对象具有 serverTimeStamp()
函数。
我无法将客户端上的这个 FieldValue 对象解析为 Date/NSDate
或 String
。我花了一些时间阅读 Firestore iOS 文档,但找不到任何线索。
将 FieldValue
从数据库获取到客户端没有问题,但是,我无法将 FieldValue
类型的时间戳转换/转换为任何内容。
尝试转换为字符串和日期:let timeStampString : String = message.timeStamp
let timeStampDate = Date(timeIntervalSince1970: message.timeStamp)
FieldValue
类型的值分配给 String
FieldValue
类型的值转换为预期的参数类型 TimeInterval
(aka Double
) 编辑:在查看 Doug Stevenson 的回答后,处理此问题的最佳方法是在读取客户端上的信息时将 timeStamp 值转换为 TimeStamp(而不是 FieldValue)。
let timeStamp = document["yourTimeStampKey"] as! TimeStamp
而不是
let timeStamp = document["yourTimeStampKey"] as! FieldValue
最佳答案
不需要解析。 Firestore 时间戳字段属于 Timestamp 类型,您应该直接使用它。它代表一个具有纳秒精度的时间点。
代码:
let timeStamp = document["yourTimeStampKey"] as! TimeStamp
而不是
let timeStamp = document["yourTimeStampKey"] as! FieldValue
关于swift - 如何在 Swift 中将 Firestore FieldValue 解析为日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50890640/