Interface DiscardUnsyncedChangesStrategy

  • Todas as interfaces:
    SyncClientResetStrategy

    public interface DiscardUnsyncedChangesStrategy
    extends SyncClientResetStrategy
    Estratégia que resolve automaticamente um reinício do cliente descartando quaisquer dados não sincronizados, mas mantendo o Realm aberto. Quaisquer alterações serão relatadas por meio da collection normal e das notificações de objeto.

    Um Realm sincronizado pode precisar ser redefinido porque o Servidor MongoDB Realm encontrou um erro e teve que ser restaurado a partir de um backup ou porque passou muito tempo desde que o cliente se conectou ao servidor, então o servidor rotacionou os logs.

    O reinício do cliente, portanto, ocorre porque o servidor não tem as informações completas necessárias para deixar o cliente totalmente atualizado.

    O processo de redefinição de descarte de alterações não sincronizadas é o seguinte: quando uma redefinição de cliente é acionada, a chamada de resposta onBeforeReset(Realm) é invocada, fornecendo uma instância do Realm antes da redefinição e outra após a redefinição, ambas somente para leitura. Depois que o reinício for concluído, a chamada de resposta onAfterReset(Realm, Realm) será invocada com uma instância do Realm final.

    No evento de que o descarte dos dados não sincronizados não seja suficiente para resolver a redefinição que o onError(SyncSession, ClientResetRequiredError) seria invocado, ele permite resolver manualmente a redefinição, como seria feito em ManuallyRecoverUnsyncedChangesStrategy.onClientReset(SyncSession, ClientResetRequiredError).

    • Detalhes do método

      • onBeforeReset

        hook onBeforeReset(Realm realm)
        Chamada de resposta que indica que um reinício do cliente está prestes a acontecer. Ele fornece uma instância congelada do Realm que será redefinida.
        Parâmetros:
        realm - Realm congelado em seu estado antes da redefinição.
      • onAfterReset

        hook onAfterReset(Realm antes,
                          Realm depois)
        O retorno de chamada é invocado assim que o reinício do cliente acontece. Ele fornece duas Instância de Realm, uma congelada exibindo o estado antes da redefinição e um Realm regular com o estado atual, que pode ser usado para recuperar objeto da redefinição.
        Parâmetros:
        before - Realm Realm congelado antes de após a redefinição.
        after - Realm Realm após o reinício.