IOSでFirebaseの永続性をオンにすると、オブザーバーは実際に何が起こり、技術レベルでどのように動作しますか?
これに基づいて、高レベルでどのように機能するかについては良い考えがあります https://firebase.google.com/docs/database/ios/offline-capabilities -Firebaseは基本的にキャッシュされたコピーを保持しますオフラインでアクセスできるデータの一部。
私が理解していないのは、オブザーバーが何回発砲し、どのような情報を使用するべきかということです。
永続性が有効になっているアプリで、次のことに気づきました。
これをクリアして、どちらが正常な動作であるかがわかるようにするとよいでしょう:)
実はとても簡単です。オブザーバーをアタッチすると(observeEventType
またはobserveSingleEventOfType
のどちらを使用する場合でも)、Firebaseは次のことを行います。
ただし、これに該当する微妙な点がいくつかあります。
ChildAdded
イベントを取得します(例/ foo/bar)ですが、監視している場所の完全なデータをサーバーから取得するまで、Value
イベント(たとえば/ foo)は取得されません。observeSingleEventOfType
を使用している場合は、明示的に1つのイベントのみを要求しているため、データをキャッシュしている場合は、#1は発生しますが、#2は発生しません。これは、希望どおりではない可能性があります。最新のサーバーデータは表示されません)。お役に立てれば!