手動 同期されていない 変更 を リカバリ する 戦略
クライアントリセットを手動で解決する戦略。
同期された Realm をリセットする必要があるのは、Device Sync でエラーが発生し、バックアップから復元する必要があったため、またはクライアントがサーバーに接続してから時間が経過しすぎてサーバーがログをローテーションしたためです。
したがって、クライアントを完全に最新の状態にするために必要な情報がサーバーに存在しないため、クライアントリセットが発生します。
手動リセットのプロセスは次のとおりです。Realm のローカル コピーは、安全性を確保するためにリカバリ ディレクトリにコピーされ、元の場所から削除されます。 次回その URL の Realm が開かれると、Atlas から自動的に再ダウンロードされ、通常どおり使用できます。
のローカル コピーがバックアップ リモート コピーから分離された後に Realm に書き込まれたデータは、Realm ファイルのローカル リカバリ コピーに存在します。 再ダウンロードされた Realm には、最初は Realm がサーバー上にバックアップされた時点で存在するデータのみが含まれます。
クライアント リセット プロセスは、次の 2 つの方法のいずれかで開始されます。
ClientResetRequiredException.executeClientResetを手動で実行します。 このメソッドを呼び出す前に、すべての Realm インスタンスを閉じる必要があります。
クライアントリセットが手動で実行されない場合、次にすべての Realm インスタンスが閉じてから再度開かれたときに自動的に実行されます。 アプリを再起動した際に、 である可能性が高くなります。
警告:このコールバックとクライアント リセットの間に実行された Realm ファイルへの書込みは、Atlas に同期されません。 これらの変更は、バックアップされた ファイルにのみ存在します。 したがって、開いているすべての Realm インスタンスを可能な限りすぐに閉じることをお勧めします。