【发布时间】:2020-01-20 13:49:23
【问题描述】:
我正在尝试使用 FirebaseDecoder() 解码 firebase 集合。这是我使用的模型
方法一
struct firebaseApplication:Codable {
var uid:String?
var status:String?
var jobId:String?
var companyId:String?
var createdDate: Timestamp? // or // Date? // or // String?
}
如果我评论 createdDate 则结果正在获取。否则没有结果。我尝试将 createdDate 设为 Timestamp? 和 Date? 和 string?,所有情况都没有结果。
我尝试了另一种工作正常的方法,就是这样
方法二
struct ApplicationCollection:CustomStringConvertible {
var description: String
var uid: String
var status:String
var jobId:String
var companyId:String
var createdDate:Date
init(Dict:[String:Any]) {
self.uid = Dict["uid"] as? String ?? ""
self.status = Dict["status"] as? String ?? ""
self.jobId = Dict["jobId"] as? String ?? ""
self.companyId = Dict["companyId"] as? String ?? ""
let str = Dict["createdDate"] as? Timestamp ?? Timestamp()
self.createdDate = str.dateValue()
self.description = "[uid: \(uid),status: \(status),jobId: \(jobId),companyId: \(companyId),createdDate: \(createdDate)]"
}
init?(data: Data) {
guard let json = (try? JSONSerialization.jsonObject(with: data)) as? [String: Any] else { return nil }
self.init(Dict: json)
}
init?(json: String) {
self.init(data: Data(json.utf8))
}
}
方法 2 可以很好地获取所有数据以及 createDate
为什么在 Method 1 的情况下没有得到 createDate ?我错过了什么吗?
如何解决
【问题讨论】:
-
如何编码是什么意思?
标签: ios swift google-cloud-firestore swift5