手動同期されていない 変更 を リカバリ する 戦略

クライアントリセットを手動で解決する戦略。

同期された Realm をリセットする必要があるのは、Device Sync でエラーが発生し、バックアップから復元する必要があったため、またはクライアントがサーバーに接続してから時間が経過しすぎてサーバーがログをローテーションしたためです。

したがって、クライアントを完全に最新の状態にするために必要な情報がサーバーに存在しないため、クライアントリセットが発生します。

手動リセットのプロセスは次のとおりです。Realm のローカル コピーは、安全性を確保するためにリカバリ ディレクトリにコピーされ、元の場所から削除されます。 次回その URL の Realm が開かれると、Atlas から自動的に再ダウンロードされ、通常どおり使用できます。

のローカル コピーがバックアップ リモート コピーから分離された後に Realm に書き込まれたデータは、Realm ファイルのローカル リカバリ コピーに存在します。 再ダウンロードされた Realm には、最初は Realm がサーバー上にバックアップされた時点で存在するデータのみが含まれます。

クライアント リセット プロセスは、次の 2 つの方法のいずれかで開始されます。

  1. ClientResetRequiredException.executeClientResetを手動で実行します。 このメソッドを呼び出す前に、すべての Realm インスタンスを閉じる必要があります。

  2. クライアントリセットが手動で実行されない場合、次にすべての Realm インスタンスが閉じてから再度開かれたときに自動的に実行されます。 アプリを再起動した際に、 である可能性が高くなります。

警告:このコールバックとクライアント リセットの間に実行された Realm ファイルへの書込みは、Atlas に同期されません。 これらの変更は、バックアップされた ファイルにのみ存在します。 したがって、開いているすべての Realm インスタンスを可能な限りすぐに閉じることをお勧めします。

関数

クリップボードにコピーされたリンク
抽象 fun onClientReset(Session : SyncSession 例外: ClientResetRequiredException)

クライアント リセットが発生したことを示すコールバック。 これは、Realm へのこれ以上の変更はサーバーと同期されず、バックアップ レルムから新しいレルムに手動で移動する必要があるため、可能な限り迅速に処理する必要があります。