【发布时间】:2020-12-22 18:38:07
【问题描述】:
我有这段代码可以从 firestore 获取信息:
struct Spty: Identifiable, Codable{
@DocumentID var id: String? = UUID().uuidString
var spty: String
var r: NSNumber
var g: NSNumber
var b: NSNumber
}
class SptyViewModel: NSObject, ObservableObject{
@Published var specialities = [Spty]()
@Published var search = ""
func fetchData(){
let db = Firestore.firestore()
db.collection("specialities").addSnapshotListener { (querySnapshot, error) in
guard let documents = querySnapshot else {return }
self.specialities = documents.documents.compactMap { (doc) -> Spty? in
let id = doc.documentID
if let spty = doc.get("spty") as? String,
let r = doc.get("r") as? NSNumber,
let g = doc.get("g") as? NSNumber,
let b = doc.get("b") as? NSNumber{
return Spty(id: id, spty: spty, r: r , g: g , b: b )
}
else{
return nil
}
}
}
}
}
在看到this video 之后,我开始对我的代码进行更改。但是,当我添加 Codable 时,我遇到了这些错误
类型“Spty”不符合协议“Decodable”
类型“Spty”不符合协议“Encodable”
【问题讨论】:
-
Firestore 不支持
Codable的目标是什么?
标签: google-cloud-firestore swiftui codable