破棄非同期 変更 戦略

インターフェース DiscardUnsyncedchangesStratey : Atlas TriggersStratey

同期されていないローカル データを破棄することでクライアントリセットを自動的に解決する戦略ですが、それ以外の場合は Realm を開いたままにします。 すべての変更は、通常のコレクションとオブジェクト通知を通じて報告されます。

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

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

同期されていない変更のリセット プロセスは次のとおりです。クライアント リセットがトリガーされると、 onBeforeResetコールバックが呼び出され、リセットされる前に Realm のインスタンスが提供されます。 リセットが終了すると、最終邦土(可変)のインスタンスの前(読み取り専用)の両方の インスタンスでonAfterResetが呼び出されます。

同期されていないデータを破棄してもリセットを解決するのに十分でない場合、 onManageResetFallbackコールバックが呼び出され、 ManuallyRecounterUnsyncedchangesStratey.onClientReset で行われるようにリセットを手動で解決できるようになります。

関数

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

クライアントのリセットが発生すると呼び出されるコールバック。 これには 2 つの Realm インスタンスがあります。1 つはリセット前の状態を表示する固定インスタンスで、もう 1 つはリセットからオブジェクトを回復するために使用できる現在の状態を持つ通常のインスタンスです。

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

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

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

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