Я собираюсь выпустить свое приложение сегодня, но у меня возникла проблема с 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
}
}
}
}
}
}