恢复 放弃 未同步 更改 策略

尝试在客户端重置期间自动恢复任何未同步更改的策略,如果恢复失败,则将丢弃这些更改。

一个同步的 Realm 可能需要重置,因为 MongoDB Realm 服务器遇到错误,必须从备份中恢复,或者因为客户端连接到服务器已经太长时间,因此服务器已经轮换了日志。

由于服务器没有使客户端完全更新所需的全部信息,因此会发生客户端重置。

恢复或丢弃未同步更改的过程如下:当客户端收到客户端重置时,会调用onBeforeReset回调,之后客户端将被重置。 重置结束后,如果已成功恢复更改,则将调用onAfterRecovery回调,否则将丢弃更改并调用onAfterDiscard

在客户端重置无法丢弃未同步的数据的事件中,将调用onManualResetFallback。这允许手动解决重置问题,就像通过ManuallyRecoverUnsyncedChangesStrategy.onClientReset完成的一样。

功能

链接已复制到剪贴板
摘要 乐趣 onAfterDiscard(before TypedRealm after MutableRealm)

客户端重置丢弃未同步的更改后调用的回调,因为它无法恢复它们。 它提供两个 Realm 实例,一个冻结实例显示重置前的状态,另一个常规 Realm 显示可用于从重置中恢复对象的当前状态。

链接已复制到剪贴板
摘要 乐趣 onAfterRecovery(before TypedRealm after MutableRealm)

客户端重置成功恢复未同步更改后调用的回调。 它提供了两个 Realm 实例,一个是冻结的 Realm 实例,显示重置前的状态,另一个是可变的 Realm 实例,显示当前状态。

链接已复制到剪贴板
摘要 乐趣 onBeforeReset(: TypedRealm)

指示即将发生客户端重置的回调。 它接收将要重置的 域 的冻结实例。

链接已复制到剪贴板
摘要 乐趣 onManualResetFallback(会话 SyncSession 异常 ClientResetRequiredException)

指示客户端重置未能完成的回调。 应按照ManuallyRecoverUnsyncedChangesStrategy.onClientReset进行处理。