如何在Swift中将Firestore FieldValue解析为Date

时间:2018-06-16 18:29:49

标签: swift firebase google-cloud-firestore

我将文档存储在Cloud Firestore数据库的集合中。在本文档中,我想要一个对文档存储时间的引用,因此我使用的是具有serverTimeStamp()函数的Firestore< {3}}对象。

我无法在客户端上将此FieldValue对象解析为Date/NSDateString。我花了一些时间阅读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

1 个答案:

答案 0 :(得分:4)

不需要解析。 Firestore时间戳字段的类型为Timestamp,您应该直接使用它们。它表示具有纳秒精度的时间点。

代码:

let timeStamp = document["yourTimeStampKey"] as! TimeStamp

而不是

let timeStamp = document["yourTimeStampKey"] as! FieldValue