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

我无法将客户端上的这个 FieldValue 对象解析为 Date/NSDateString 。我花了一些时间阅读 Firestore iOS 文档,但找不到任何线索。

FieldValue 从数据库获取到客户端没有问题,但是,我无法将 FieldValue 类型的时间戳转换/转换为任何内容。

尝试转换为字符串和日期:
let timeStampString : String = message.timeStamplet 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/

    10-12 01:18