인터페이스 DiscardUnsyncedChangesStrategy

  • 모든 슈퍼인터페이스:
    SyncClientResetStrategy

    public interface DiscardUnsyncedChangesStrategy
    extends SyncClientResetStrategy
    동기화되지 않은 데이터를 모두 삭제하여 클라이언트 재설정을 자동으로 해결하지만, 그렇지 않은 경우에는 Realm을 열린 상태로 유지하는 전략입니다. 모든 변경 사항은 일반 collection 및 객체 알림을 통해 보고됩니다.

    MongoDB Realm 서버에 오류가 발생하여 백업에서 복원해야 하거나 클라이언트가 서버에 연결한 지 너무 오래되어 서버가 로그를 순환했기 때문에 동기화된 Realm을 재설정해야 할 수 있습니다.

    따라서 클라이언트 재설정이 발생하는 이유는 서버에 클라이언트를 최신 상태로 유지하는 데 필요한 전체 정보가 없기 때문입니다.

    동기화되지 않은 변경 사항 삭제 재설정 프로세스는 다음과 같습니다: 클라이언트 재설정이 트리거되면 onBeforeReset(Realm) 콜백이 호출되어 재설정 전 Realm의 인스턴스와 재설정 후 다른 인스턴스를 모두 읽기 전용으로 제공합니다. 재설정이 완료되면 최종 Realm의 인스턴스를 사용하여 콜백 onAfterReset(Realm, Realm) 가 호출됩니다.

    동기화되지 않은 데이터를 삭제해도 onError(SyncSession, ClientResetRequiredError) 이(가) 호출되는 재설정을 이벤트하는 데 충분하지 않은 경우 ManuallyRecoverUnsyncedChangesStrategy.onClientReset(SyncSession, ClientResetRequiredError) 에서 수행되는 것처럼 수동으로 재설정을 이벤트할 수 있습니다.

    • 메서드 세부 정보

      • onBeforeReset

        void onBeforeReset​(Realm )
        클라이언트 재설정이 곧 발생함을 나타내는 콜백입니다. 재설정되는 Realm의 동결된 인스턴스를 제공합니다.
        매개변수:
        realm - Realm 을(를) 재설정 전의 상태로 동결합니다.
      • onAfterReset

        void onAfterReset​( 이전 Realm , 이후 Realm )
        클라이언트 재설정이 발생하면 호출되는 콜백입니다. 재설정 전 상태를 표시하는 동결 Realm 인스턴스와 현재 상태의 일반 Realm 인스턴스, 재설정 후 객체를 복구하는 데 사용할 수 있는 두 가지 Realm 인스턴스를 제공합니다.
        매개변수:
        before - Realm 재설정 후 Realm을 동결했습니다.
        after - Realm Realm 재설정 후.