私はファイアウォールを最後の数週間iOS Swift 4で使用して、レルムの代替として簡単なデモアプリケーションを作成しました。私のアプリでCRUD操作Firestore addSnapshotListenerから間違ったCREATED変更を受け取りました。
を行うことが取り込まれますシンプルなテーブルビューを持ち、ユーザーなどのデバイス間で同期を保つ - 私が扱っている - 私は、コールバックで
self.changeListener = query.addSnapshotListener { [weak self](queryResultSnapshot, error) in
//process document changes
}
クエリにsnapshotlistenerを追加しましたqueryResultSnapshot.changesに存在するDocumentChangeTypeに基づいて追加、更新、削除された変更。
主な問題は、私が削除した後
reference.delete(completion:)
を使用してドキュメントを削除する場合で成功している - 私は私のquerySnapshotListenerで受け取った次のイベントを参照してください。
//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
上記の印刷で - 私は変更のソースも印刷するために保留中の書き込みフラグを使用しています。私が見るように - 私は削除を行う - 私は削除通知を取得し、すぐに追加の作成/同じ文書参照の削除が続いた。
誰でもこの動作が見られますか?私は数日前までこの行動を見ませんでした - 私は扱う必要があるものがあれば私は興味がありますか?事前に
おかげで削除して、この問題は発生しませんのために
ありがとうございます@artembolotov。それは –
@ firestore-ram、あなたのフィードバックのためにありがとう:-) – artembolotov
@artembototov - クイックアップデート、トランザクションの使用は、オフラインモードを使用する機能を削除しました。だから私はそれを削除しなければならなかった。私が最初に観察した振る舞いは、数週間前にそれ自体解決したので、間違いなくファイヤーストアバグでした –