大家好,我有一个简短的问题。我试图像这样将自定义模型保存到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不赞成这样做吗?还是我必须导入其他内容?
谢谢
答案 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的“麻烦制造者”