Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ / /

Classe SyncConfiguration.Builder

Nesta página

  • io.realm.mongodb.sync
  • Construtores
  • Resumo do método
  • Métodos herdados
  • Detalhes do construtor
  • Detalhes do método
  • addModule
  • allowQueriesOnUiThread
  • allowWritesOnUiThread
  • ativoFile
  • COMPILAR
  • clientResetHandler
  • compactaOnLaunch
  • encryptionKey
  • erroHandler
  • flowFactory
  • inMemory
  • initialData
  • Assinaturas iniciais
  • maxNumberOfAtiveVersions
  • módulos
  • name
  • Somente leitura
  • rxFactory
  • Versão do esquema
  • syncClientResetStrategy
  • URLPrefix
  • waitForInitialRemoteData
java.lang.Object
io.realm.mongodb.sync.SyncConfiguration.Builder

Classe anexa:

SyncConfiguration

O construtor costumava construir instâncias de uma SyncConfiguration de forma fluente.

Construtor e descrição
User user
)

Cria uma instância do construtor para uma Flexible Sync SyncConfiguration com o usuário fornecido.

User user,
String partitionValue
)

Cria uma instância do construtor para uma SyncConfiguration baseada em partição com o usuário fornecido e o valor de partição.

User user,
ObjectId partitionValue
)

Cria uma instância do construtor para uma SyncConfiguration baseada em partição com o usuário fornecido e o valor de partição.

Modificador e tipo
Método e descrição
Object module
)

Adiciona um módulo aos módulos já definidos.

boolean allowQueriesOnUiThread
)

Define se RealmQueries são permitidos ou não a partir do thread da UI.

boolean allowWritesOnUiThread
)

Define se as chamadas para Realm.executeTransaction são permitidas ou não a partir do thread da UI.

String assetFile
)

Ao abrir o Realm pela primeira vez, em vez de criar um arquivo vazio, o Arquivo de Realm será copiado do arquivo de ativo fornecido e usado em seu lugar.

Cria o RealmConfiguration com base nos parâmetros do construtor.

Define o manipulador para quando ocorre um reinício do cliente.

Define isso para determinar se o Arquivo de Realm deve ser compactado antes de retornar ao usuário.

Definir isso fará com que o Realm compactará o Arquivo de Realm se o Arquivo de Realm ficar muito grande e uma quantidade significativa de espaço puder ser recuperada.

byte[] key
)

Define a chave de bytes io.realm.Realm#ENCRYPTION_KEY_LENGTH usada para criptografar e descriptografar o arquivo Realm.

Define o manipulador de erros usado por esta configuração.

Define o FlowFactory usado para criar fluxos de corrotina a partir de Objeto de Realm.

Definir isso criará um Realm na memória em vez de salvá-lo no disco.

Define os dados iniciais em io.realm.Realm .

Define o número máximo de versões ativas no arquivo Realm antes de uma IllegalStateException é lançado ao tentar gravar mais dados.

Substitui o(s) módulo(s) existente(s) por um ou mais RealmModule s.

Object baseModule,
java.lang.Object[] additionalModules
)

Substitui o(s) módulo(s) existente(s) por um ou mais RealmModule s.

String filename
)

Define o nome do Arquivo de Realm neste dispositivo.

Definir isso fará com que o Realm se torne somente leitura e todas as transações de gravação feitas nesse Realm falharão com uma IllegalStateException .

Define o RxObservableFactory usado para criar Rx Observables a partir de objetos Realm.

long schemaVersion
)

Define a versão do esquema do Realm.

Define o manipulador para quando ocorre um reinício do cliente.

Define o manipulador para quando ocorre um reinício do cliente.

String urlPrefix
)

O prefixo que é anexado ao caminho na solicitação do WebSocket que inicia uma conexão de sincronização com o MongoDB Realm.

Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto.

Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto.

  • Métodos herdados da classe java.lang.Object : getClass , hashCode , equals , clone , toString , notify , notifyAll , wait , wait , wait , finalize

public Builder (
User user
)

Cria uma instância do construtor para uma Flexible Sync SyncConfiguration com o usuário fornecido.

Parâmetros

  • user - O usuário que será usado para acessar o aplicativo Realm.

Dica

Veja também:

  • {@link SubscriptionSet} para mais informações sobre Flexible Sync.

public Builder (
User user,
String partitionValue
)

Cria uma instância do construtor para uma SyncConfiguration baseada em partição com o usuário fornecido e o valor de partição.

Parâmetros

  • user - O usuário que será usado para acessar o aplicativo Realm.

  • partitionValue - O valor da partição que identifica o Realm remoto que será sincronizado.

public Builder (
User user,
ObjectId partitionValue
)

Cria uma instância do construtor para uma SyncConfiguration baseada em partição com o usuário fornecido e o valor de partição.

Parâmetros

  • user - O usuário que será usado para acessar o aplicativo Realm.

  • partitionValue - O valor da partição que identifica o Realm remoto que será sincronizado.

Adiciona um módulo aos módulos já definidos.
boolean allowQueriesOnUiThread
)

Define se RealmQueries é permitido ou não a partir do thread da UI.

Por padrão, o Realm permite queries na thread principal. No entanto, ao fazer isso, seu aplicativo pode sofrer uma queda de armações ou até mesmo ANRs. Recomendamos direcionar as consultas para threads que não sejam da interface do usuário ou, alternativamente, usar RealmQuery.findAllAsync() ou RealmQuery.findFirstAsync() .

boolean allowWritesOnUiThread
)

Define se as chamadas para Realm.executeTransaction são permitidas ou não a partir do thread da UI.

AVISO: o Realm não permite que transações síncronas sejam executadas na thread principal, a menos que os usuários optem explicitamente por esse método. Recomendamos redirecionar chamadas para executeTransaction para threads que não sejam da interface do usuário ou, alternativamente, usar Realm.executeTransactionAsync .

Ao abrir o Realm pela primeira vez, em vez de criar um arquivo vazio, o arquivo Realm será copiado do arquivo de ativos fornecido e usado no lugar. Isso pode ser usado para preencher previamente o Realm com dados, para que ele não tenha a ser baixado do servidor.

O arquivo Realm fornecido deve ser um Realm sincronizado válido para o usuário fornecido e deve ter sido criado usando o Realm.writeCopyTo(File) API.

AVISO: essa pode ser uma operação demorada e, de preferência, deve ser feita em um thread em segundo plano.

Parâmetros

  • assetFile - caminho para o arquivo do banco de dados do ativo.

Lança

  • Exceção de estado ilegal - se este Realm também estiver marcado como inMemory() .

Cria o RealmConfiguration com base nos parâmetros do construtor.

Devoluções

o SyncConfiguration criado.

Lança

  • Exceção de estado ilegal - se os parâmetros de configuração forem inválidos ou inconsistentes.

Define o manipulador para quando ocorre um reinício do cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer um reinício do cliente.

Parâmetros

  • handler - manipulador personalizado no caso de um reinício do cliente.

Define isso para determinar se o Arquivo de Realm deve ser compactado antes de retornar ao usuário. É passado o tamanho total do arquivo (dados + espaço livre) e os bytes usados pelos dados no arquivo.

Parâmetros

  • compactOnLaunch - uma chamada de resposta chamada ao abrir um Realm pela primeira vez durante a vida de um processo para determinar se ele deve ser compactado antes de ser devolvido ao usuário. É passado o tamanho total do arquivo (dados + espaço livre) e os bytes usados pelos dados no arquivo.

Definir isso fará com que o Realm compactará o Arquivo de Realm se o Arquivo de Realm ficar muito grande e uma quantidade significativa de espaço puder ser recuperada. Consulte DefaultCompactOnLaunchCallback para obter detalhes.

Define a chave de bytes io.realm.Realm#ENCRYPTION_KEY_LENGTH usada para criptografar e descriptografar o arquivo Realm.

Parâmetros

  • key - a chave de criptografia.

Lança

Define o manipulador de erros utilizado por esta configuração.Somente erros não manipulados pelo SyncPolicy definido serão relatados a este manipulador de erros.

Parâmetros

  • errorHandler - manipulador de erros usado para relatar erros ao se comunicar com o servidor de Objeto de Realm.

Lança

Define o FlowFactory usado para criar fluxos de corrotina a partir de Objeto de Realm. O padrão de fábrica é o RealmFlowFactory .

Parâmetros

  • factory - fábrica para usar.

Definir isso criará um Realm na memória em vez de salvá-lo no disco. Os Realms na memória ainda podem usar espaço em disco se a memória estiver fraca, mas todos os arquivos criados por um Realm na memória serão excluídos quando o Realm for fechado.Observe que, como os Realms na memória não são persistentes, você deve ter certeza de mantenha pelo menos uma referência não fechada ao objeto de Realm na memória com o nome específico, enquanto quiser que os dados durem.

Define os dados iniciais em io.realm.Realm . Esta transação será executada somente na primeira vez que o arquivo Realm for aberto (criado) ou durante a migração dos dados se RealmConfiguration.Builder.deleteRealmIfMigrationNeeded() estiver definido.

Parâmetros

  • transaction - transação a ser executada.

Define as assinaturas iniciais para o io. Realm. Realm . Isso só será executado na primeira vez que o Arquivo de Realm for aberto (e o arquivo criado). Se waitForInitialRemoteData() também estiver configurado, o arquivo de Realm não será totalmente aberto até que todos os dados de assinatura também tenham sido carregados.

Parâmetros

Define o número máximo de versões ativas no arquivo Realm antes de uma IllegalStateException é lançado ao tentar gravar mais dados.

O Realm é capaz de lidar simultaneamente com muitas versões diferentes de Objeto de Realm. Isso pode acontecer se você tiver um Realm aberto em muitos threads diferentes ou estiver congelando objetos enquanto os dados estão sendo gravados no arquivo.

Em circunstâncias normais, isso não é um problema, mas se o número de versões ativas aumentar demais, isso terá um efeito negativo no tamanho do arquivo no disco. A definição desses parâmetros pode, portanto, ser usada para evitar usos do Realm que podem resultar em Realms muito grandes.

Observe que o número da versão também aumentará quando alterações de outros dispositivos forem integradas neste dispositivo, portanto, o número de versões ativas também dependerá do que os outros dispositivos que gravam no mesmo Realm estão fazendo.

Parâmetros

  • number - o número máximo de versões ativas antes que uma exceção seja lançada.

Dica

Veja também:

Substitui o(s) módulo(s) existente(s) por um ou mais RealmModule s. A utilização deste método substituirá o esquema atual deste Realm pelo esquema definido pelos módulos fornecidos.

Uma referência ao módulo Realm padrão contendo todas as classes Realm no projeto (mas não dependências), pode ser encontrada utilizando Realm.getDefaultModule() . A combinação do esquema do projeto do aplicativo e de uma dependência da biblioteca é feita com o seguinte código:

builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

Parâmetros

  • modules - lista de módulos do primeiro módulo Realm (obrigatório).

Lança

Dica

Veja também:

Object baseModule,
java.lang.Object[] additionalModules
)

Substitui o(s) módulo(s) existente(s) por um ou mais RealmModule s. A utilização deste método substituirá o esquema atual deste Realm pelo esquema definido pelos módulos fornecidos.

Uma referência ao módulo Realm padrão contendo todas as classes Realm no projeto (mas não dependências), pode ser encontrada utilizando Realm.getDefaultModule() . A combinação do esquema do projeto do aplicativo e de uma dependência da biblioteca é feita com o seguinte código:

builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

Parâmetros

  • baseModule - o primeiro módulo Realm (obrigatório).

  • additionalModules - os módulos adicionais do Realm

Lança

Dica

Veja também:

Define o nome do Arquivo de Realm neste dispositivo.

Parâmetros

  • filename - nome do Arquivo de Realm.

Definir isso fará com que o Realm se torne somente leitura e todas as transações de gravação feitas nesse Realm falharão com uma IllegalStateException .

Isso significa especificamente que initialData(Realm.Transaction) não funcionará em combinação com um Realm somente leitura, e isso resultará em uma IllegalStateException sendo jogada.

Marcar um Realm como somente leitura se aplica apenas ao Realm nesse processo. Outros processos e dispositivos ainda podem escrever no Realm.

Define o RxObservableFactory usado para criar Rx Observables a partir de Objeto de Realm. O padrão de fábrica é RealmObservableFactory .

Parâmetros

  • factory - fábrica para usar.

long schemaVersion
)

Define a versão do esquema do Realm.Synced Realms suportam apenas alterações de esquema aditivas que podem ser aplicadas sem exigir uma migração manual. A versão do esquema será usada somente como uma indicação para a camada de armazenamento subjacente remover ou adicionar índices. Eles serão recalculados se a versão do esquema fornecida for diferente da versão no arquivo Realm. AVISO: não há garantias de que o valor inserido aqui seja o mesmo retornado por Realm.getVersion(). Devido à natureza dos Realms sincronizados, o valor pode ser maior e menor.

  • Ele será mais baixo se outro cliente com um schemaVersion menor se conectar ao servidor pela primeira vez após essa schemaVersion ter sido usada.

  • Ele será maior se outro cliente com um schemaVersion superior for conectado ao servidor após a criação desse Realm.

Parâmetros

  • schemaVersion - a versão do esquema.

Lança

Define o manipulador para quando ocorre uma redefinição de cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer uma redefinição de cliente. Esta estratégia só está disponível para domínios sincronizados usando sincronização baseada em partição. Os domínios que usam a sincronização flexível atualmente suportam apenas syncClientResetStrategy(ManulyRecoverUnsyncedChangesStrategy) .

Parâmetros

  • handler - manipulador de perdas contínuo personalizado no caso de um reinício do cliente.

Define o manipulador para quando ocorre um reinício do cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer um reinício do cliente.

Parâmetros

  • handler - manipulador manual personalizado no caso de um reinício do cliente.

O prefixo que é anexado ao caminho na solicitação do WebSocket que inicia uma conexão de sincronização com o MongoDB Realm. O valor especificado deve corresponder à configuração do servidor, caso contrário, o dispositivo não poderá criar uma conexão. Esse valor é opcional e só deve ser definido se uma regra de firewall específica exigir isso.

Parâmetros

  • urlPrefix - O prefixo a ser anexado à URL da conexão de sincronização.

Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto. O Realm não será aberto até que todos os dados tenham sido baixados. Isso significa que, se um dispositivo estiver off-line, o Realm não será aberto.Como o download de todas as alterações pode ser uma operação demorada que pode bloquear o thread da interface do usuário, os Realms com essa configuração ativada só devem ser abertos em threads em segundo plano ou com Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) no thread da interface do usuário.

Esta verificação só é imposta na primeira vez que um Realm é criado. Se, de outra forma, você quiser garantir que um Realm tenha as alterações mais recentes, use SyncSession.downloadAllServerChanges() .

Parâmetros

Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto. O Realm não será aberto até que todos os dados tenham sido baixados. Isso significa que, se um dispositivo estiver off-line, o Realm não será aberto.Como o download de todas as alterações pode ser uma operação demorada que pode bloquear o thread da interface do usuário, os Realms com essa configuração ativada só devem ser abertos em threads em segundo plano ou com Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) no thread da interface do usuário.

Esta verificação só é imposta na primeira vez que um Realm é criado. Se, de outra forma, você quiser garantir que um Realm tenha as alterações mais recentes, use SyncSession.downloadAllServerChanges() .

Voltar

SyncConfiguration