2017-06-19 10 views
0

Firebase Realtime Databaseのクライアントでオフラインサポートを有効にすると、帯域幅が節約できますか? 起動時にFirebaseクライアントがストレージからデータベースをロードしてから続行し、後で追加されたものだけを同期するのだろうか?あるいは、それがすべてを同期し、それが前に保存したオフラインデータへのフォールバックを実行しない場合。オフラインサポートを有効にしてFirebase Realtime Databaseの帯域幅を節約する

答えて

0

Googleの次のアムステルダムでGoogleのグーグルと話をしたところ、彼は私の理論を確認しました。 アプリケーションでオフラインサポートが有効になっていて、オフラインからオンライン状態に移行している場合、Firebaseは可能な限りスマートな方法でデータベースを同期します。つまり、可能であれば、変更された値だけが送信されます。したがって、オフラインサポートを有効にすると帯域幅が節約されます。

+0

私の意見では、Firebaseはあなたのデータベースをできるだけスマートな方法で同期させると言っていたのは正しいです。しかし、前に述べたように、オンラインに戻ったときに、オフラインで行った変更だけが 'Firebase servers'で更新されます。しかし、私の意見では、同じ帯域幅を節約するためにオフラインにしようとしています。 –

+0

帯域幅を節約するためにオフラインにしないでください。 –

+0

最新の回答をご覧ください。私は十分にはっきりしていると思う。 –

1

FirebaseDatabase.getInstance().setPersistenceEnabled(true);を使用している場合は、オフラインでもデータベースにクエリを実行できることを意味します。これは、Firebaseがデータベースのローカルコピーを作成するために起こります。あなたがオフラインになっている間に行われたすべての変更は、オンラインに戻るとFirebaseサーバー上で更新されます。このオプションは帯域幅を節約するために使用されないので、enable offline capabilitiesになります。

さらに明確にするために、Firebaseデータベースを使用しており、setPersistenceEnabled(true)を使用するすべてのクライアントは、それ自身の内部(ローカル)バージョンのデータベースを維持します。データが更新されると、このローカルバージョンのデータベースに最初に書き込まれたのはです。

この結果、Firebaseへのすべての書き込みは、データがサーバに書き込まれる前でもすぐにローカルイベントをトリガします。これは、インターネット接続に関係なく、アプリケーションが応答し続けることを意味します。

インターネット接続が再確立されると、適切な現在のサーバー状態が表示されます。 Firebaseクライアントsynchronizesは、そのデータをFirebaseサーバおよび他のクライアントと同じデータベースを使用しています。

また、Firebaseは自動的にconnection stateを管理し、帯域幅とバッテリの使用量を削減します。クライアントにactive listenersがなく、保留中の書き込みまたはonDisconnectの操作がなく、goOfflineメソッドによって明示的に切断されていない場合、Firebaseは60秒間使用しないと接続を終了します。

結論として、オフラインサポートを有効にしているときに帯域幅に違いはありません。利点は、私たちがインターネットに接続されていなくてもデータベースを照会して変更できることです。

希望します。

+0

これは全く質問に答えていません。 –

関連する問題