복구또는동기화되지않은 변경사항 폐기 전략

클라이언트 재설정 중에 동기화되지 않은 변경 사항을 자동으로 복구하려고 시도하며, 복구가 실패하면 변경 사항이 삭제됩니다.

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

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

동기화되지 않은 변경 사항을 복구하거나 삭제하는 프로세스는 다음과 같습니다: 클라이언트가 클라이언트 재설정을 수신하면 onBeforeReset 콜백이 호출된 후 클라이언트가 재설정됩니다. 재설정이 완료되면 변경 사항이 성공적으로 복구된 경우 onAfter Recovery 콜백이 호출되고, 그렇지 않으면 변경 사항이 삭제되고 onAfterDiscard 가 호출됩니다.

클라이언트 재설정 후에도 동기화되지 않은 데이터를 삭제할 수 없는 경우 onManualResetFallback 이 호출됩니다. 이를 통해 수동으로 수행했던 재설정을 수동 으로 해결할 수 있습니다.

함수

클립보드에 링크 복사됨
추상 fun onAfterDiscard(이전: TypedRealm, 이후: MutableRealm)

클라이언트 재설정이 동기화되지 않은 변경 사항을 복구할 수 없어 삭제한 후에 호출되는 콜백입니다. 두 가지 Realm 인스턴스, 재설정 전 상태를 표시하는 동결 인스턴스와 재설정 후 객체를 복구하는 데 사용할 수 있는 현재 상태를 표시하는 일반 Realm 인스턴스를 제공합니다.

클립보드에 링크 복사됨
추상 fun onAfter Recovery(이전: TypedRealm, 이후: MutableRealm)

클라이언트 재설정이 동기화되지 않은 변경 사항을 성공적으로 복구하면 콜백이 호출됩니다. 두 가지 Realm 인스턴스를 제공합니다, 재설정 전 상태를 표시하는 동결 인스턴스와 현재 상태를 표시하는 변경 가능한 Realm 인스턴스.

클립보드에 링크 복사됨
추상 fun onBeforeReset(realm: TypedRealm)

클라이언트 재설정이 곧 발생함을 나타내는 콜백입니다. 재설정될 영역의 동결된 인스턴스를 수신합니다.

클립보드에 링크 복사됨

클라이언트 재설정이 완료되지 않았음을 나타내는 콜백입니다. 이는 수동 으로 복구 UnsyncedChangesStrategy.onClientReset 에서처럼 처리되어야 합니다.