Docs Menu
Docs Home
/ /
io.realm.mongodb.sync

Clase SyncConfiguration.Builder

java.lang.Object
io.realm.mongodb.sync.SyncConfiguration.Builder

Clase envolvente:

Configuración de sincronización

Generador utilizado para construir instancias de una SyncConfiguration de manera fluida.

Constructor y descripción
User user
)

Crea una instancia del generador para una SyncConfiguration de Flexible Sync con el usuario dado.

User user,
String partitionValue
)

Crea una instancia del generador para una sincronización basada en partición SyncConfiguration con el usuario y el valor de partición indicados.

User user,
ObjectId partitionValue
)

Crea una instancia del generador para una sincronización basada en partición SyncConfiguration con el usuario y el valor de partición indicados.

Modificador y Tipo
Método y descripción
Object module
)

Agrega un módulo a los módulos ya definidos.

boolean allowQueriesOnUiThread
)

Establece si o no RealmQueries Se permiten desde el hilo de UI.

boolean allowWritesOnUiThread
)

Establece si se permiten o no las llamadas a Realm.executeTransaction desde el hilo de UI.

String assetFile
)

Al abrir el Reino por primera vez, en lugar de crear un archivo vacío, se copiará el archivo del Reino desde el archivo de activos proporcionado y se utilizará en su lugar.

Crea RealmConfiguration en función de los parámetros del generador.

Establece el controlador para cuando se produce un reinicio del cliente.

Establece esto para determinar si el archivo Realm debe compactarse antes de devolverlo al usuario.

Si se configura esta opción, Realm compactará el archivo Realm si este ha crecido demasiado y se podrá recuperar una cantidad significativa de espacio.

byte[] key
)

Establece la clave de bytes io.realm.Realm#ENCRYPTION_KEY_LENGTH utilizada para cifrar y descifrar el archivo Realm.

Establece el controlador de errores utilizado por esta configuración.

Establece el FlowFactory utilizado para crear flujos de corrutinas desde objetos Realm.

Establecer esto creará un Realm en memoria en lugar de guardarlo en el disco.

Establece los datos iniciales en io.realm.Realm.

Establece el número máximo de versiones en vivo en el archivo Realm antes de que se lance una IllegalStateException al intentar escribir más datos.

Reemplaza los módulos existentes con uno o más RealmModule.

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

Reemplaza los módulos existentes con uno o más RealmModule.

String filename
)

Establece el nombre de archivo para el archivo Realm en este dispositivo.

Si se configura esto, el Reino pasará a ser de solo lectura y todas las transacciones de escritura realizadas contra este Reino fallarán con una IllegalStateException.

Establece RxObservableFactory utilizado para crear Rx Observables a partir de objetos Realm.

long schemaVersion
)

Establece la versión de esquema del Realm.

Establece el controlador para cuando se produce un reinicio del cliente.

Establece el controlador para cuando se produce un reinicio del cliente.

String urlPrefix
)

El prefijo que se antepone a la ruta en la solicitud WebSocket que inicia una conexión de sincronización a MongoDB Realm.

Si configuras esta opción, el Reino descargará todos los cambios conocidos del servidor la primera vez que se abra un Reino.

Si configuras esta opción, el Reino descargará todos los cambios conocidos del servidor la primera vez que se abra un Reino.

  • Métodos heredados de la clase getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwaitwaitjava.lang.Object:,,,,,,,,,, finalize

public Builder (
User user
)

Crea una instancia del generador para una SyncConfiguration de Flexible Sync con el usuario dado.

Parámetros

  • user - El usuario que se utilizará para acceder a la aplicación Realm.

Tip

  • {@link SubscriptionSet} para obtener más información sobre Flexible Sync.

public Builder (
User user,
String partitionValue
)

Crea una instancia del generador para una sincronización basada en partición SyncConfiguration con el usuario y el valor de partición indicados.

Parámetros

  • user - El usuario que se utilizará para acceder a la aplicación Realm.

  • partitionValue - El valor de la partición que identifica el reino remoto que se sincronizará.

public Builder (
User user,
ObjectId partitionValue
)

Crea una instancia del generador para una sincronización basada en partición SyncConfiguration con el usuario y el valor de partición indicados.

Parámetros

  • user - El usuario que se utilizará para acceder a la aplicación Realm.

  • partitionValue - El valor de la partición que identifica el reino remoto que se sincronizará.

Agrega un módulo a los módulos ya definidos.

boolean allowQueriesOnUiThread
)

Establece si se permiten o no RealmQueries desde el hilo de UI.

Realm permite consultas en el hilo principal por defecto. Sin embargo, al hacerlo, la aplicación podría experimentar una pérdida de fotogramas o incluso ANR. Recomendamos desviar las consultas a hilos que no sean de interfaz de usuario o, alternativamente, usar RealmQuery.findAllAsync() o RealmQuery.findFirstAsync().

boolean allowWritesOnUiThread
)

Establece si se permiten o no las llamadas a Realm.executeTransaction desde el hilo de UI.

ADVERTENCIA: Realm no permite la ejecución de transacciones síncronas en el hilo principal a menos que los usuarios lo acepten explícitamente con este método. Recomendamos desviar las llamadas a executeTransaction a hilos que no sean de interfaz de usuario o, alternativamente, usar Realm.executeTransactionAsync.

Al abrir el Reino por primera vez, en lugar de crear un archivo vacío, se copiará el archivo del Reino desde el archivo de activos proporcionado y se utilizará en su lugar. Esto se puede usar para rellenar previamente el Reino con datos, de modo que no sea necesario descargarlo del servidor.

El archivo Realm proporcionado debe ser un Realm sincronizado válido para el usuario dado y debe haber sido creado utilizando la API Realm.writeCopyTo(File).

ADVERTENCIA: Esta podría ser una operación larga y lo ideal es que se realice en un hilo en segundo plano.

Parámetros

  • assetFile - ruta al archivo de base de datos de activos.

Lanzamientos

Crea RealmConfiguration en función de los parámetros del generador.

Devuelve

la SyncConfiguration creada.

Lanzamientos

Establece el controlador para cuando se produce un reinicio del cliente. Si no se configura ningún controlador, se registra un error al reiniciar el cliente.

Parámetros

  • handler - Controlador personalizado en caso de reinicio del cliente.

Establece esto para determinar si el archivo Realm debe compactarse antes de devolverse al usuario. Se le pasa el tamaño total del archivo (datos + espacio libre) y los bytes utilizados por los datos del archivo.

Parámetros

  • compactOnLaunch Una devolución de llamada que se ejecuta al abrir un dominio por primera vez durante la vida de un proceso para determinar si debe compactarse antes de devolverse al usuario. Se le pasa el tamaño total del archivo (datos + espacio libre) y los bytes utilizados por los datos en el archivo.

Al configurar esto, Realm compactará el archivo si este ha crecido demasiado y se puede recuperar una cantidad significativa de espacio.Consulte DefaultCompactOnLaunchCallback para obtener más información.

Establece la clave de bytes io.realm.Realm#ENCRYPTION_KEY_LENGTH utilizada para cifrar y descifrar el archivo Realm.

Parámetros

  • key - la clave de cifrado.

Lanzamientos

Establece el gestor de errores utilizado por esta configuración. Solo los errores que no sean manejados por el SyncPolicy definido serán reportados a este gestor de errores.

Parámetros

  • errorHandler - gestor de errores utilizado para informar errores al comunicarse con el objeto Realm Server.

Lanzamientos

Establece la fábrica de flujos utilizada para crear flujos de corrutinas a partir de objetos de Realm. La fábrica predeterminada es RealmFlowFactory.

Parámetros

  • factory - Fábrica para utilizar.

Al configurar esto, se creará un dominio en memoria en lugar de guardarlo en el disco. Los dominios en memoria podrían seguir usando espacio en disco si la memoria es insuficiente, pero todos los archivos creados por un dominio en memoria se eliminarán al cerrarlo. Tenga en cuenta que, dado que los dominios en memoria no se almacenan en memoria, debe asegurarse de conservar al menos una referencia no cerrada al objeto del dominio en memoria con el nombre específico mientras desee que los datos perduren.

Establece los datos iniciales en io.realm.Realm. Esta transacción se ejecutará solo la primera vez que se abra (cree) el archivo Realm o durante la migración de datos si se ha definido RealmConfiguration.Builder.deleteRealmIfMigrationNeeded().

Parámetros

  • transaction - transacción a ejecutar.

Establece las suscripciones iniciales para io.realm.Realm. Esto solo se ejecutará la primera vez que se abra el archivo Realm (y se cree). Si waitForInitialRemoteData() también está configurado, el archivo Realm no se abrirá por completo hasta que se hayan cargado todos los datos de suscripción.

Parámetros

Establece el número máximo de versiones en vivo en el archivo Realm antes de que se lance una IllegalStateException al intentar escribir más datos.

Realm puede gestionar simultáneamente varias versiones diferentes de objetos Realm. Esto puede ocurrir si tiene un Realm abierto en varios subprocesos o si se bloquean objetos mientras se escriben datos en el archivo.

En circunstancias normales, esto no supone un problema, pero si el número de versiones activas aumenta demasiado, afectará negativamente el tamaño del archivo en disco. Por lo tanto, configurar estos parámetros puede utilizarse para evitar usos de Realm que puedan resultar en Realms muy grandes.

Tenga en cuenta que el número de versión también aumentará cuando se integren cambios de otros dispositivos en este dispositivo, por lo que la cantidad de versiones activas también dependerá de lo que estén haciendo otros dispositivos que escriben en el mismo Realm.

Parámetros

  • number - el número máximo de versiones activas antes de que se lance una excepción.

Tip

Reemplaza los módulos existentes con uno o más RealmModule. Este método reemplaza el esquema actual de este dominio con el esquema definido por los módulos proporcionados.

Se puede encontrar una referencia al módulo Realm predeterminado que contiene todas las clases Realm del proyecto (pero no sus dependencias) mediante Realm.getDefaultModule(). La combinación del esquema del proyecto de la aplicación y una dependencia de biblioteca se realiza mediante el siguiente código:

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

Parámetros

  • modules - lista de módulos el primer módulo Realm (obligatorio).

Lanzamientos

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

Reemplaza los módulos existentes con uno o más RealmModule. Este método reemplaza el esquema actual de este dominio con el esquema definido por los módulos proporcionados.

Se puede encontrar una referencia al módulo Realm predeterminado que contiene todas las clases Realm del proyecto (pero no sus dependencias) mediante Realm.getDefaultModule(). La combinación del esquema del proyecto de la aplicación y una dependencia de biblioteca se realiza mediante el siguiente código:

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

Parámetros

  • baseModule - el primer módulo Realm (obligatorio).

  • additionalModules - los módulos adicionales de Realm

Lanzamientos

Establece el nombre de archivo para el archivo Realm en este dispositivo.

Parámetros

  • filename - nombre para el archivo Realm.

Si se configura esto, el Reino pasará a ser de solo lectura y todas las transacciones de escritura realizadas contra este Reino fallarán con una IllegalStateException.

Esto en particular significa que initialData(Realm.Transaction) no funcionará en combinación con un Realm de solo lectura y configurar esto dará como resultado que se arroje una IllegalStateException.

Marcar un dominio como de solo lectura solo se aplica al dominio en este proceso. Otros procesos y dispositivos aún pueden escribir en el dominio.

Establece la RxObservableFactory que se usa para crear Rx Observables a partir de objetos Realm. La fábrica por defecto es RealmObservableFactory .

Parámetros

  • factory - Fábrica para utilizar.

long schemaVersion
)

Establece la versión del esquema del dominio. Los dominios sincronizados solo admiten cambios aditivos del esquema que se pueden aplicar sin necesidad de una migración manual. La versión del esquema solo se usará como indicación para que la capa de almacenamiento subyacente elimine o añada índices. Estos se recalcularán si la versión del esquema proporcionada difiere de la versión del archivo del dominio. ADVERTENCIA: No se garantiza que el valor insertado aquí sea el mismo que el devuelto por Realm.getVersion(). Debido a la naturaleza de los dominios sincronizados, el valor puede ser mayor o menor.

  • Será menor si otro cliente con un schemaVersion menor se conecta al servidor por primera vez después de que se utilizó esta versión de esquema.

  • Será mayor si otro cliente con un schemaVersion más alto se conecta al servidor después de la creación de este Realm.

Parámetros

  • schemaVersion - la versión del esquema.

Lanzamientos

Establece el controlador para cuando se produce un restablecimiento de cliente. Si no se configura ningún controlador, se registra un error al reiniciar el cliente. Esta estrategia solo está disponible para dominios sincronizados que utilizan sincronización basada en particiones. Los dominios que utilizan sincronización flexible actualmente solo admiten syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy).

Parámetros

  • handler - Controlador de pérdida personalizado y sin interrupciones en caso de reinicio del cliente.

Establece el controlador para cuando se produce un reinicio del cliente. Si no se configura ningún controlador, se registra un error al reiniciar el cliente.

Parámetros

  • handler - Controlador manual personalizado en caso de reinicio del cliente.

El prefijo que se antepone a la ruta en la solicitud WebSocket que inicia una conexión de sincronización con MongoDB Realm. El valor especificado debe coincidir con la configuración del servidor; de lo contrario, el dispositivo no podrá establecer una conexión. Este valor es opcional y solo debe configurarse si una regla de firewall específica lo requiere.

Parámetros

  • urlPrefix - El prefijo que se agregará a la URL de conexión de sincronización.

Al configurar esto, Realm descargará todos los cambios conocidos del servidor la primera vez que se abra. Realm no se abrirá hasta que se hayan descargado todos los datos. Esto significa que, si un dispositivo está sin conexión, Realm no se abrirá. Dado que descargar todos los cambios puede ser una operación larga que podría bloquear el hilo de la interfaz de usuario, los Realms con esta configuración habilitada solo deben abrirse en hilos en segundo plano o con Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) en el hilo de la interfaz de usuario.

Esta comprobación solo se aplica la primera vez que se crea un dominio. Si desea asegurarse de que un dominio tenga los cambios más recientes, utilice SyncSession.downloadAllServerChanges().

Parámetros

Al configurar esto, Realm descargará todos los cambios conocidos del servidor la primera vez que se abra. Realm no se abrirá hasta que se hayan descargado todos los datos. Esto significa que, si un dispositivo está sin conexión, Realm no se abrirá. Dado que descargar todos los cambios puede ser una operación larga que podría bloquear el hilo de la interfaz de usuario, los Realms con esta configuración habilitada solo deben abrirse en hilos en segundo plano o con Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) en el hilo de la interfaz de usuario.

Esta comprobación solo se aplica la primera vez que se crea un dominio. Si desea asegurarse de que un dominio tenga los cambios más recientes, utilice SyncSession.downloadAllServerChanges().

Volver

Configuración de sincronización