アプリケーションは、アプリのネットワーク接続が一時的に失われても機能します。データのローカルへの保存、プレゼンスの管理、レイテンシの処理を行うためのツールが用意されています。アプリは、一時的なネットワークの中断を自動的に処理します。キャッシュに保存されたデータはオフライン中にも使用でき、ネットワーク接続が回復すると書き込み内容が再送信されます。ディスクの永続性を有効にすると、アプリのデータはデバイスにローカルに書き込まれるため、オフラインになってもアプリの状態を維持できます。システムがアプリを再起動した場合でも変わりません。行のコードで有効にできます。クライアントによって同期されるすべてのデータがディスクに永続化され、オフラインになってもそれらのデータを使用できます。システムがアプリを再起動した場合でも変わりません。アプリはキャッシュに保存されているローカルデータを使用して、あたかもオンラインであるかのように動作します。ローカルの更新に対するリスナーのコールバックは引き続き発生します。クライアントは、アプリのオフライン中に実行されたすべての書き込みオペレーションのキューを自動的に保持します。システムがアプリを再起動したときにもすべての書き込みが維持されます。サーバーに送信されます。クライアントはアプリの再起動後もユーザーの認証トークンを保持します。アプリのオフライン中に認証トークンが期限切れになった場合、再認証が行われるまでクライアントは書き込みオペレーションを一時停止します。ルールによって書き込みオペレーションが失敗する可能性があります。リスナーのために保存します。特定の場所を同期した状態に保つことができます。リスナーが設定されていない場合でもこれらの場所にあるデータを自動的にダウンロードし、データの同期を維持します。次のコード行で同期を解除できます。キャッシュに保存されます。ほとんどのアプリケーションでは、この量で十分です。よって最も長い間使用されていないデータが消去されます。同期が維持されているデータは、キャッシュから消去されません。オフラインのときでも使用できるように、クエリから返されたデータを保存します。キャッシュからデータを読み込みます。ネットワーク接続が回復すると、データが読み込まれ、クエリに反映されます。アイテムをデータベースに照会します。...});OfflineActivity.javaユーザーが接続を失ってオフラインになり、アプリを再起動したとします。つのアイテムを照会しました。つのアイテムを正常に返します。added」イベントが発生します。「value」イベントは発生しません。これは、オンライン中にそのクエリが実行されていないためです。added」イベントがすぐに取得されます。added」イベントと「value」イベントが取得されます。オフラインでのトランザクションの処理アプリがオフラインの間に実行されたトランザクションはすべてキューに格納されます。サーバーに送信されます。トランザクションはアプリの再起動後に保持されない永続性を有効にしても、トランザクションはアプリの再起動後には保持されません。されると仮定することはできません。保存されていないことをアプリに表示するか、トランザクションをアプリに手動で保存してからアプリの再起動後にトランザクションを再度実行することをおすすめします。オフラインのシナリオやネットワーク接続に対処するための機能が数多く用意されています。このガイドの残りの内容は、永続性を有効にしているかどうかに関係なく、アプリに適用されます。アプリケーションでは、クライアントが接続したり接続解除したりするタイミングを検出できると役に立つことがよくあります。クライアントが接続を解除したときにそのユーザーを「オフライン」としてマークする場合などに有用です。サーバーから接続解除されたときにデータベースにデータを書き込むことができるシンプルなプリミティブが用意されています。これらの更新処理はクライアントが正常に接続を解除したかどうかにかかわらず行われるため、接続が失われた場合やクライアントがクラッシュした場合でもデータが確実にクリーンアップされます。含むあらゆる書き込みオペレーションを接続の解除時に実行できます。プリミティブを使用して接続の解除と同時にデータを書き込むシンプルな例を次に示します。サーバーで継続的に実行されます。サーバーがセキュリティをチェックして、リクエストされた書き込みイベントを実行する権限がユーザーにあることを確認し、書き込みイベントが無効な場合はアプリに通知します。その後、サーバーが接続をモニタリングします。クライアントによって接続が能動的に閉じられた場合、サーバーはセキュリティをもう一度チェックして(オペレーションがまだ有効であることを確認して)からイベントを呼び出します。正しくアタッチされたことを確認できます。イベントをキャンセルすることも可能です。...onDisconnectRef.cancel();OfflineActivity.java接続状態の検出プレゼンス関連の多くの機能において、アプリが現在オンラインであるかオフラインであるかがわかると便利です。クライアントの接続状態が変わるたびに更新される特別な場所(/.info/connected)が用意されています。