Swift Cloud Firestore 自定义对象映射

Kyl*_*ard 3 firebase swift google-cloud-firestore

我对 Firebase 的新 Cloud Firestore 相对较新,并且在尝试将数据映射到/从时遇到困难。我已经尝试通过 Google 在线查看文档,但它有一些我无法弄清楚的问题。

  1. 当我尝试从[String : Any]自定义结构转换时,文档建议我尝试以下操作:
docRef.getDocument { (document, error) in
            let result = Result {
                try document.flatMap {
                    try $0.data(as: City.self)
                }
            }
            switch result {
            case .success(let city):
                if let city = city {
                    print("City: \(city)")
                } else {
                    print("Document does not exist")
                }
            case .failure(let error):
                print("Error decoding city: \(error)")
            }
        }
Run Code Online (Sandbox Code Playgroud)

然而,这产生就行错误$0.data(as: City.self)类型的值“NSObject的”没有成员“数据”

  1. 当我尝试将数据作为文档写入新集合时,文档建议我尝试以下操作:
do {
    try db.collection("cities").document("LA").setData(from: city)
} catch let error {
    print("Error writing city to Firestore: \(error)")
}
Run Code Online (Sandbox Code Playgroud)

但这也会在.setData(from: city)带有参数标签 '(from:)' 与任何可用重载不匹配的情况下产生错误。

有没有人对此有任何熟悉,以尝试为将 Firestore 数据转换为自定义结构提供额外的清晰度?我知道我的结构是可编码的。

Tia*_*hen 7

如果我理解正确,您会遇到我几天前遇到的同样问题:Firebase (Cloud Firestore) - 如何在 Swift 5 中将文档转换为自定义对象?

这里的关键是import FirebaseFirestoreSwift明确地做而不是仅仅做import Firestore