如何将自定义对象保存到Firestore?

时间:2020-02-27 02:54:39

标签: swift firebase google-cloud-firestore

大家好,我有一个简短的问题。我试图像这样将自定义模型保存到Firestore:

import Firebase

    let city = City(name: "Los Angeles",
                    state: "CA",
                    country: "USA",
                    isCapital: false,
                    population: 5000000)
    do {
        try db.collection("cities").document("LA").setData(from: city)
    } catch let error {
        print("Error writing city to Firestore: \(error)")
    }

问题是.setData(from:city)无法正常工作?它的说法是多余的参数标签'from:',当我这样做时会出现错误。 Firestore不赞成这样做吗?还是我必须导入其他内容?

谢谢

1 个答案:

答案 0 :(得分:0)

文档不是完全错误的,只是一部分不完整。 Firebase添加了一个扩展,使制作自定义对象更容易,但是在文档中未提及该扩展。 (我假设它是扩展名)

Custom Objects上的文档是需要扩展的代码示例

通过将其添加到您的Podfile中进行简单修复

  pod 'FirebaseFirestoreSwift'

然后在终端机或cocoapods中进行pod更新。

然后在您的班级中,只需将导入内容更新为包含

import Cocoa
import FirebaseCore
import FirebaseFirestore
import FirebaseFirestoreSwift

作为参考,文档中的代码是这样

try db.collection("cities").document("LA").setData(from: city)

还有这个

let docRef = db.collection("cities").document("LA")

 docRef.getDocument { (document, error) in
    let result = Result {
    try document.flatMap {
       try $0.data(as: City.self)
    }
 }

和这行

.data(as: City.self)

.setData(from:

是需要FirebaseFirestoreSwift的“麻烦制造者”