我将文档存储在Cloud Firestore数据库的集合中。在本文档中,我想要一个对文档存储时间的引用,因此我使用的是具有serverTimeStamp()
函数的Firestore< {3}}对象。
我无法在客户端上将此FieldValue对象解析为Date/NSDate
或String
。我花了一些时间阅读Firestore iOS文档,但无法在此找到任何潜在客户。
从数据库中获取FieldValue
到客户端没有问题,但是,我无法将FieldValue
类型的timeStamp转换/转换为任何内容。
尝试转换为字符串和日期:
let timeStampString : String = message.timeStamp
let timeStampDate = Date(timeIntervalSince1970: message.timeStamp)
FieldValue
的值指定为String
FieldValue
类型的值转换为预期参数类型TimeInterval
(又名Double
)编辑:在回顾了Doug Stevenson的回答之后,处理此问题的最佳方法是在阅读客户端上的信息时将timeStamp值转换为TimeStamp(而不是FieldValue)。
let timeStamp = document["yourTimeStampKey"] as! TimeStamp
而不是
let timeStamp = document["yourTimeStampKey"] as! FieldValue
答案 0 :(得分:4)
不需要解析。 Firestore时间戳字段的类型为Timestamp,您应该直接使用它们。它表示具有纳秒精度的时间点。
代码:
let timeStamp = document["yourTimeStampKey"] as! TimeStamp
而不是
let timeStamp = document["yourTimeStampKey"] as! FieldValue