【发布时间】:2020-04-02 20:21:28
【问题描述】:
我今天要发布我的应用,但 Firestore 有问题。
当我在文档上出错时,例如,如果我写错了键名,或者当我错过了文档中的键和值时,我的应用程序会因为它不匹配模型而崩溃。
我正在立即更新和修复它,但它仍在发生。当我在控制台上打印结果时,旧结果仍然来自 firebase,它没有更新。
我尝试禁用离线缓存,但还是一样。
let settings = FirestoreSettings()
settings.isPersistenceEnabled = false
dbCollectionPosts.settings = settings
这是我的 readData 函数:
func readData() {
dbCollectionPosts.collection("konular").addSnapshotListener { (documentSnapshot, err) in
if err != nil {
print((err?.localizedDescription)!)
return
}else {
print("read success")
}
documentSnapshot!.documentChanges.forEach { diff in
// Real time create from server
if (diff.type == .added) {
let model = try! FirestoreDecoder().decode(Post.self, from: diff.document.data())
self.data.append(model)
}
if (diff.type == .removed) {
let docId = diff.document.documentID
if let indexOfToRemove = self.data.firstIndex(where: { $0.id == docId} ) {
self.data.remove(at: indexOfToRemove)
print("removed: \(docId)")
}
}
// Real time modify from server
if (diff.type == .modified) {
self.data = self.data.map { (eachData) -> Post in
let data = eachData
if data.id == diff.document.documentID {
return try! FirestoreDecoder().decode(Post.self, from: diff.document.data())
}else {
return eachData
}
}
}
}
}
}
【问题讨论】:
标签: ios swift firebase google-cloud-firestore