リカバリまたは 同期されていない 変更 を破棄する 戦略

クライアントリセット中に同期されていない変更を自動的に回復する戦略です。回復が失敗した場合、変更は破棄されます。

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

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

同期されていない変更を回復または破棄するプロセスは次のようになります。 クライアント リセット がクライアントによって受信されると、 onBeforeResetコールバックが呼び出され、クライアントはリセットされます。 リセットが終了すると、変更が正常に回復された場合は、 onAfterRecoveryコールバックが呼び出され、変更は破棄され、 onAfterDiscardが呼び出されます。

クライアント リセットが マニュアル リセット フォールバック で同期されていないデータを破棄できなかった場合、 が呼び出されます。 これにより、 は、 ManuallyRecoverUnsyncedchangesStratey.onClientResetによって実行される際と同様に、リセットを手動で解決できるようになります。

関数

クリップボードにコピーされたリンク
抽象 fun onAfterDiscard(: TypedRealm : MutableRealm)

クライアントリセットが同期されていない変更を回復できなかったため、破棄した後に呼び出されるコールバック。 これには 2 つの Realm インスタンスが用意されています。1 つはリセット前の状態を表示する固定のもので、1 つはリセットからオブジェクトを回復するために使用できる現在の状態を表示する通常の Realm です。

クリップボードにコピーされたリンク
抽象 fun onAfterRecovery(: TypedRealm : MutableRealm)

クライアントリセットが同期されていない変更を正常に回復すると呼び出されるコールバック。 これには 2 つの Realm インスタンスがあり、1 つはリセット前の状態を表示する固定インスタンスと、現在の状態を持つ可変 Realm インスタンスです。

クリップボードにコピーされたリンク
抽象 fun onBeforeReset(realm: TypedRealm)

クライアントリセットがこれから実行されることを示すコールバック。 リセットされる Realm の固定インスタンスを受け取ります。

クリップボードにコピーされたリンク

クライアントのリセットが完了しなかったことを示すコールバック。 これはManuallyReoverUnsyncedchangesStratey.onClientResetの ように処理される必要があります。