Para sincronizar datos entre dispositivos, habilite la sincronización de dispositivos y luego use los métodos y propiedades relacionados con la sincronización en SDK del dispositivo Atlas.
Tip
Mira el tutorial
Si prefiere aprender con el ejemplo, consulte el tutorial de sincronización de dispositivos, que utiliza una aplicación de lista de tareas pendientes sincronizada con clientes para plataformas comunes compatibles con App Services.
Antes de empezar
Si aún no tiene una, regístrese para obtener una cuenta gratuita de MongoDB Atlas.
La sincronización de dispositivos requiere un clúster Atlas con MongoDB versión 5.0 o posterior. Puede usar un clúster M compartido gratuito0 para explorar y desarrollar su aplicación. Recomendamos usar un clúster de nivel dedicado (M10 y superior) para aplicaciones de producción. No puede usar la sincronización con una instancia sin servidor ni una instancia de base de datos federada.
Si aún no tiene una, cree una nueva aplicación de App Services vinculada a su clúster Atlas.
Configurar su modelo de datos
Elija un SDK
El SDK de dispositivos Atlas integra Realm Core Database, una base de datos de objetos optimizada para dispositivos móviles. El SDK, disponible para múltiples idiomas y plataformas, incluye todo lo necesario para trabajar con bases de datos sincronizadas en el código de cliente. Puede usar varios idiomas del SDK para trabajar con el mismo conjunto de datos sincronizados en diferentes dispositivos y plataformas.
Esta guía se centra en configurar Device Sync con el SDK. Para obtener una documentación más detallada, que incluya detalles sobre cómo instalar y utilizar el Atlas Device SDK de manera general, consulte los SDK docs:
Nota
Uso de la sincronización de dispositivos con el SDK de WebAssembly de Realm JS
Para obtener más información sobre cómo crear aplicaciones web en tiempo real para el navegador con la API de base de datos de Realm y Atlas Device Sync, consulte Introducción a Realm Web y Atlas Device Sync (versión preliminar). También puede consultar los mismos datos en un clúster de Atlas mediante MongoDB Data Access.
Definir modelo de datos
Una base de datos sincronizada utiliza modelos de objetos definidos por el usuario para determinar el tipo de objetos en la base de datos. Además, Sync requiere un esquema de documento del servidor para cada tipo de objeto sincronizado, de modo que el servidor pueda traducir y aplicar cambios entre las bases de datos sincronizadas y MongoDB Atlas.
Para definir sus modelos de objetos sincronizados, realice una de las siguientes acciones para cada tipo de objeto:
Sincronizar modelos de objetos desde un SDK: En el modo de desarrollo, puede generar automáticamente un esquema de documento para cada tipo de objeto sincronizado y asignarlo a una colección del clúster vinculado con el mismo nombre que el tipo de objeto. El modo de desarrollo le permite configurar su modelo de datos sincronizado desde una aplicación cliente utilizando los mismos modelos de objetos y código que utiliza en su aplicación de producción. Esto es útil si prefiere un enfoque centrado en el cliente que utiliza modelos de objetos idiomáticos en su lenguaje de programación preferido.
Para comenzar, consulte Crear un modelo de datos.
Generar modelos de objetos a partir de un esquema de documento: Si ya tiene datos en Atlas, puede generar automáticamente modelos de objetos específicos del lenguaje que coincidan con los esquemas de documento definidos para el clúster sincronizado de su aplicación. Puede definir estos esquemas manualmente o App Services puede muestrear los datos existentes en el clúster para crearlos automáticamente. Esto resulta útil si prefiere un enfoque centrado en el servidor o si planea crear aplicaciones con varios SDK.
Para obtener una guía sobre cómo generar modelos de objetos que pueda usar en sus aplicaciones cliente, consulte Generar modelos de objetos SDK.
Una vez que tenga los modelos de objetos generados, puede copiarlos directamente en su aplicación cliente y usarlos de la misma manera que lo haría con cualquier objeto o estructura normal en su lenguaje de programación preferido.
Definir patrones de acceso a datos
Una vez que haya decidido el modelo de datos de su aplicación, puede definir un patrón de acceso a datos y reglas de acceso para los datos de su aplicación.
Las aplicaciones cliente pueden consultar los campos consultables de un documento para determinar qué objetos sincronizar. A continuación, App Services aplica reglas y roles predeterminados para determinar si los usuarios pueden leer o escribir los objetos que coinciden con la consulta.
Definir reglas de acceso a datos
Las reglas de acceso a los datos determinan los datos que se sincronizan, así como la capacidad de cada usuario para leer y escribir datos. Las reglas están estrechamente vinculadas al modelo de datos de tu aplicación.
Con Device Sync, se especifican los datos que se sincronizarán mediante consultas de objetos coincidentes en una aplicación cliente. App Services evalúa roles y reglas para determinar cuáles de esos objetos coincidentes puede leer y escribir el usuario.
Puedes definir roles en colecciones específicas. Los roles predeterminados otorgan permisos de lectura y escritura cuando no se aplican roles más específicos. Los roles predeterminados se aplican a todas las colecciones a las que una aplicación puede acceder, pero puedes restringir un rol a una colección específica especificando su nombre.
Configurar sincronización
La sincronización de dispositivos le permite especificar cómo los clientes pueden acceder a los datos en su aplicación. Para obtener una guía sobre cómo habilitar y configurar la sincronización, consulte Configurar y habilitar la sincronización de dispositivos Atlas.
Optimizar el uso de datos de sincronización
Device Sync sincroniza todos los datos de las colecciones con un esquema definido en su clúster Atlas. Si no especifica un campo en su esquema, Device Sync no lo sincronizará con los clientes.
Sync almacena datos de servicios públicos en su clúster sincronizado para facilitar la sincronización con los clientes. Device Sync cuenta con optimizaciones integradas para reducir la cantidad de datos de servicios públicos almacenados en clústeres sincronizados. Si desea reducir aún más la cantidad de datos de servicios públicos para adaptarla a su caso de uso, consulte nuestra guía para optimizar el uso de Device Sync Atlas.
Crear consultas en su aplicación cliente
Con la sincronización de dispositivos habilitada, puede comenzar a crear consultas desde su aplicación cliente.
El SDK de dispositivos Atlas proporciona métodos para crear, actualizar y eliminar consultas de la aplicación cliente. Los SDK utilizan suscripciones para mantener dichas consultas en el cliente. Mediante estas suscripciones, las aplicaciones sincronizan objetos con la aplicación backend y pueden detectar y reaccionar ante los cambios.
Para crear consultas desde su aplicación cliente, consulte la documentación del SDK de Atlas Device en su lenguaje de programación preferido:
Advertencia
Límite de tamaño de consulta
El límite de tamaño para las consultas de su aplicación cliente al usar Device Sync es de kB. Si se excede este límite en una consulta, se genera 256 un error "LimitsExceeded".
Importante
La sincronización flexible ignora la intercalación personalizada
La sincronización flexible ignora cualquier intercalación personalizada que haya configurado en una colección de MongoDB en Atlas. En cambio, las colecciones sincronizadas siempre usan
{locale: "simple"} al evaluar suscripciones o permisos de sincronización.