繁体   English   中英

Swift Cloud Firestore 自定义对象映射

[英]Swift Cloud Firestore Custom Object Mapping

我对 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)")
            }
        }

但是,这在$0.data(as: City.self)行上产生了一个错误,类型为 'NSObject' has no member 'data'

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

但这也会在.setData(from: city)上产生错误,参数标签为 '(from:)' do not match any available overloads

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

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

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

从未找到错误的原因,但是......

  1. 我最终将$0.data转换$0.data JSON Data 对象,然后适当地解码以便将字典映射到结构。
  2. 如何使用 Swift 的 Codable 编码成字典?

暂无
暂无

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

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