繁体   English   中英

Firebase 时间戳解码

[英]Firebase timestamp decode

我有以下 object:

struct CustomModel: Codable {
    var id: String?
    var creationTime: Timestamp? <-----
    var providerData: [ProviderData]?
    var uid: String?

    enum CodingKeys: String, CodingKey {
        case id
        case creationTime
        case providerData
        case uid
    }
}

解码它:

JSONDecoder().decode(CustomModel.self, from: jsonData)

尝试解码 Firebase 时间戳时出现以下错误:

无法解析 json keyNotFound(TimestampKeys(stringValue: "seconds", intValue: nil), Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "creationTime", intValue: nil)], debugDescription: "No value associated with key TimestampKeys(stringValue: "seconds", intValue: nil) ("seconds").", underlyingError: nil))

我正在使用 Firebase 函数与 Firebase 交互,因此我需要解码这个 object,问题是我不知道如何处理 creationTime firebase 时间戳。 我不想使用 CodableFirestore 库,因为它已经过时了。 有什么建议么?

这里的问题是Timestamp不是Codable协议支持的类型。 请记住, Timestamp是 Firestore 自定义类型,而不是原生的 Swift 类型。 然而, Date是原生的 Swift 类型,并且受Codable支持,并且可以在Timestamp之间轻松转换。

let date = timestamp.dateValue()
let timestanmp = Timestamp(date: date)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM