Ich habe in den letzten Wochen Firestore in iOS Swift 4 verwendet, um eine einfache Demo-App als Alternative zu Realm zu erstellen. Es hat eine einfache Tabellenansicht, die synchron auf verschiedenen Geräten wird bevölkert und gehalten als Benutzer CRUD-OperationenError error CREATED Änderung von Firestore addSnapshotListener
In meiner app tut - ich habe eine snapshotlistener auf eine Anfrage
self.changeListener = query.addSnapshotListener { [weak self](queryResultSnapshot, error) in
//process document changes
}
In der Callback hinzugefügt - Ich habe behandelt die hinzugefügten, aktualisierten, gelöschten Änderungen basierend auf DocumentChangeType in queryResultSnapshot.changes.
Hauptproblem ist, wenn ich ein Dokument löschen mit
reference.delete(completion:)
Nach dem Löschen erfolgreich ist - ich sehe die folgenden Ereignisse in meinem querySnapshotListener erhalten.
//following is a debug message printed in delete function to correlate document ID
Will delete reference: i0W76CZP5X41vRp6BmzY
//following 3 are printed in the snapshot change listener
Deleted reference: i0W76CZP5X41vRp6BmzY, Source of change: Server
Created reference: i0W76CZP5X41vRp6BmzY, Source of change: Server
Deleted reference: i0W76CZP5X41vRp6BmzY, Source of change: Server
Im obigen Ausdruck - ich benutze die Pending Writes Flag, um die Quelle der Änderung auch zu drucken. Wie wir sehen können - wenn ich eine Löschung mache - erhalte ich eine Löschbenachrichtigung, unmittelbar gefolgt von einer zusätzlichen Erstellung/Löschung der gleichen Dokumentenreferenz.
Kann jemand anderes dieses Verhalten sehen? Ich habe dieses Verhalten bis vor ein paar Tagen nicht gesehen - also bin ich neugierig, ob es etwas gibt, mit dem ich umgehen muss?
Dank im Voraus
Vielen Dank @artembolotov. Das tat es –
@ Firestore-Ram, danke für Ihr Feedback :-) – artembolotov
@artembototov - schnelles Update, die Verwendung der Transaktion entfernt die Fähigkeit, den Offline-Modus zu verwenden. Also musste ich es entfernen. Das Verhalten, das ich ursprünglich beobachtet habe, war definitiv ein Feuerwanzen, weil es sich vor ein paar Wochen gelöst hat. –