接口 DiscardUnsyncedChangesStrategy

  • 所有超级接口:
    SyncClientResetStrategy

    public interface DiscardUnsyncedChangesStrategy
    extends SyncClientResetStrategy
    该策略通过丢弃任何未同步的数据来自动解决客户端重置问题,但在其他情况下保持 Realm 打开。 任何更改都将通过collection和对象通知进行报告。

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

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

    丢弃未同步更改重置过程如下:当触发客户端重置时,会调用onBeforeReset(Realm)回调,提供重置之前和重置之后 Realm 的另一个实例,均为只读。重置完成后,将使用最终 Realm 的实例调用回调onAfterReset(Realm, Realm)

    如果丢弃未同步的数据不足以解决将调用onError(SyncSession, ClientResetRequiredError)的重置,则可以像在ManuallyRecoverUnsyncedChangesStrategy.onClientReset(SyncSession, ClientResetRequiredError)中一样手动解决重置问题。