Looking for firebase Answers? Try Ask4KnowledgeBase
Looking for firebase Keywords? Try Ask4Keywords

firebaseFirebaseのオフライン機能


前書き

この記事では、 Firebaseを使用する際にオフライン機能を実装するさまざまな方法、Androidプラットフォームでのオフライン機能とその例を有効にすることができる時期と理由についての情報を提供します。

備考

私は何を使うべきですか?ディスクの永続性またはkeepSyncedコール?


私の経験から、あなたのアプリケーションが何をしているのか、そしてあなたのアプリケーションのトランザクションとデータベースをどのように管理しているかによって、いつもそれが異なると言えるでしょう。たとえば、ユーザーがデータの書き込みと読み取りを行っているだけで、削除や編集ができないアプリケーションがある場合は、 DiskPersistenceを使用することをおDiskPersistenceします。

また、 DiskPersistenceはデータをキャッシュに保存します。つまり、アプリはユーザーのデバイスにもっと多くのスペースを使用します。

アプリケーションが複雑な取引の多くを管理し、あなたのデータは実際に頻繁に更新されている場合一方では、おそらくあなたは避けなければならないDiskPersistenceし、使用keepSyncedあなたが新鮮な維持したい参考文献に。

どうして?


DiskPersistenceはローカルで取得したデータを格納します。連続したListenerValueEventsとともに使用しないと、データの非同期化がDiskPersistence発生する可能性があります。例えば:

  1. ユーザAはあなたのアプリに "Hello World"というメッセージを書き込みます。これはユーザBのために受信されます
  2. ユーザBが自分の電話機のユーザAからメッセージをダウンロードし、メッセージ「Hello World」を見る
  3. ユーザー "Firebase is cool"への彼のメッセージです。
  4. ユーザーBは、Firebaseフィルタを適用したときにスナップショットの参照が同じであるため、データを更新しても「Hello World」メッセージを見続けます。

これを避けるためには、すべての時間をトラッキングする参照に継続的なリスナーを保持することをお勧めします。

両方を一緒に使うことはできますか?


もちろん可能ですが、ほとんどのアプリでは、データが大量にダウンロードされるのを避け、接続がなくてもアプリを操作できるようにすることをおすすめします。

ユーザーデバイスのキャッシュスペースを気にしない場合は、 FirebaseDatabaseオブジェクトでdiskPersistenceを有効にし、短い参照時間に多くの時間がかかる可能性のある参照ごとにkeepSyncフラグを追加することをお勧めします。すべての時間を新鮮に保つ。

Firebaseのオフライン機能 関連する例