Atlas Device Sync tiene dos modos de sincronización: Sincronización flexible y sincronización basada en particiones. Recomendamos usar la sincronización flexible. La información de esta página está destinada a ayudar a los usuarios que ya tienen aplicaciones que usan la sincronización basada en particiones.
Nota
Coincidencia de modos de sincronización con Atlas Device Sync
Al usar Atlas Device Sync en su aplicación cliente, su implementación debe coincidir con el modo de sincronización seleccionado en la configuración de la aplicación backend. Solo puede usar un modo de sincronización por aplicación. No puede combinar la sincronización basada en particiones y la sincronización flexible en la misma aplicación.
Valor de partición
Cuando se selecciona Partition-Based Sync para la configuración de la aplicación de backend, la implementación del cliente debe incluir un valor de la partición. Este es el valor del campo clave de partición que se selecciona al configurar la Partition-Based Sync.
El valor de la partición determina a qué datos puede acceder la aplicación cliente.
Pasa el valor de la partición cuando abres un reino sincronizado.
Abre un Realm sincronizado basado en particiones
Para abrir un dominio con sincronización basada en particiones, llame a Realm.open(). Pase un objeto de configuración, que debe incluir sync Propiedad que define un objeto SyncConfiguration. En SyncConfiguration, debe incluir user partitionValuey.
const config = { schema: [Car], sync: { user: app.currentUser, partitionValue: "myPartition", }, }; const realm = await Realm.open(config);
const config: Realm.Configuration = { schema: [Car], sync: { user: app.currentUser!, partitionValue: "myPartition", }, }; const realm = await Realm.open(config);
Importante
El inicio de sesión sin conexión es compatible con las configuraciones de sincronización basadas en particiones Puede abrir un reino inmediatamente con sincronización en segundo plano o después de que transcurra un tiempo de espera mediante la sincronización basada en particiones.
Abrir un dominio sincronizado basado en particiones empaquetadas
Al abrir un realm sincronizado en paquete que use Partition-Based Sync, debes usar la misma llave de partición que se utilizó en la configuración original del realm. Si usas una llave de partición diferente, el SDK lanzará un error al abrir el Realm incluido.
Migrar de la sincronización basada en particiones a la sincronización flexible
Puedes migrar tu App Services Device Sync Mode de Partition-Based Sync a Flexible Sync. La migración es un proceso automático que no requiere ningún cambio en el código de tu aplicación. La migración automática requiere la versión 11.10.0 o superior del SDK de Realm Node.js.
La migración le permite conservar sus usuarios y configuración de autenticación de App Services. Flexible Sync ofrece opciones de configuración de permisos más versátiles y una sincronización de datos más granular.
Para obtener más información sobre cómo migrar su aplicación de App Services de sincronización basada en particiones a sincronización flexible, consulte Migrar modos de sincronización de dispositivos.
Actualización del código del cliente después de la migración
La migración automática de la sincronización basada en particiones a la sincronización flexible no requiere cambios en el código de cliente. Sin embargo, para facilitar esta funcionalidad, Realm gestiona automáticamente las diferencias entre los dos modos de sincronización mediante:
Creación automática de suscripciones de sincronización flexible para cada tipo de objeto donde
partitionKey == partitionValue.Inyectar un campo
partitionKeyen cada objeto si no existe. Esto es necesario para la suscripción automática a Sincronización Flexible.
Si necesita actualizar el código de su cliente después de la migración, considere actualizar su base de código para eliminar las funciones de migración ocultas. Le recomendamos actualizar su base de código cuando:
Agregue un nuevo modelo o cambie un modelo en su base de código de cliente.
Agrega o cambia funcionalidad que implica leer o escribir objetos de Realm
Desea implementar un control más preciso sobre los datos que sincroniza
Realice estos cambios para convertir el código de cliente de sincronización basada en particiones para utilizar la sincronización flexible:
Agregue
flexible:truea su objeto SyncConfiguration donde abre un reino sincronizado.Agregue propiedades relevantes a sus modelos de objetos para usarlas en sus suscripciones de Sincronización Flexible. Por ejemplo, podría agregar una propiedad
ownerIdpara permitir que un usuario sincronice solo sus propios datos.Elimine las suscripciones automáticas de sincronización flexible y cree manualmente las suscripciones relevantes.
Para obtener ejemplos de estrategias de permisos de sincronización flexible, incluidos ejemplos de cómo modelar datos para estas estrategias, consulte la Guía de permisos de sincronización de dispositivos.
Eliminar y crear suscripciones manualmente
Al migrar de la sincronización basada en particiones a la sincronización flexible, Realm crea automáticamente suscripciones ocultas de sincronización flexible para su aplicación. La próxima vez que agregue o modifique suscripciones, le recomendamos lo siguiente:
Esto le permite ver toda su lógica de suscripción junta en su base de código para futuras iteraciones y depuraciones.
Para obtener más información sobre las suscripciones de Flexible Sync generadas automáticamente, consulte Migrar la aplicación cliente a Flexible Sync.