公式の方法でFirestoreでCodable #firebase #firestore #codable
こちらの記事でFirebaseFirestoreSwiftを知りました。ありがたや😇
現時点(2019/10/30)FirebaseFirestoreSwiftはバージョン0.2ですが、今後使う人も増えるかなとコピペで動作確認できるようまとめました。
■FirebaseFirestoreSwiftとは
Firestoreのデータのデコード・エンコードをらくらくに。
https://cocoapods.org/pods/FirebaseFirestoreSwift
■ デコードのようす
struct User: Codable, Equatable {
var name: String
}
import FirebaseFirestore
import FirebaseFirestoreSwift
...
func set() {
let user: User = User(name: "tsubasa")
let db: Firestore = Firestore.firestore()
let encodedUser: [String : Any] = try! Firestore.Encoder().encode(user)
db.collection("users").document("hoge").setData(encodedUser)
}
func get() {
let db: Firestore = Firestore.firestore()
let docRef: DocumentReference = db.collection("users").document("hoge")
docRef.getDocument { (document, _) in
if let document = document, document.exists {
let user = try? Firestore.Decoder().decode(User.self, from: document.data()!)
// あとは煮るなり焼くなり
} else {
print("Document does not exist")
}
}
}