Docs Menu
Docs Home
/ /
Servicios de aplicaciones Atlas

Conectarse a los servicios de aplicaciones - SDK de Flutter

El App El cliente es la interfaz con el backend de Atlas App Services. Proporciona acceso a funciones de App Services como la autenticación de usuarios y la sincronización de dispositivos.

  1. Crear una aplicación de servicios de aplicaciones

  2. Encuentre el ID de la aplicación en la interfaz de usuario de App Services

Cambiado en la 1.7.0 versión: App debe crearse en el aislamiento principal.

Cree una instancia App para acceder a las funciones de App Services en toda su aplicación cliente. Recomendamos crear la instancia App solo una vez en el aislamiento principal, idealmente en cuanto se inicie la aplicación.

  1. Obtén el ID de tu aplicación de App Services desde la interfaz de usuario de App Services. Para saber cómo, consulta "Buscar el ID de tu aplicación".

  2. Crear una AppConfiguration objeto con el ID de aplicación de su aplicación como argumento.

  3. Crea una Aplicación con el AppConfiguration que acabas de crear. En Flutter v1.7.0 y más adelante, esto debe hacerse en el aislado principal, de lo contrario el SDK arroja un error.

Después de App crear, puede acceder a la App instancia construida en un aislamiento en segundo plano App.getById mediante. Consulte la sección "Obtener aplicación por ID" en esta página para obtener más información.

final appConfig = AppConfiguration(appId);
final app = App(appConfig);

Puedes crear varias instancias de cliente de aplicación para conectarte a varias aplicaciones. Todas las instancias de cliente de aplicación que comparten el mismo ID de aplicación usan la misma conexión subyacente.

Importante

Cambiar la configuración de una aplicación después de inicializarla

Cambiado 1.8.0 enbaseUrl la versión: no se almacena en caché en AppConfiguration

Al inicializar el cliente de la aplicación, la configuración se almacena en caché internamente. Intentar cerrar y volver a abrir una aplicación con una configuración modificada dentro del mismo proceso no tiene ningún efecto. El cliente continúa usando la configuración almacenada en caché.

En la versión del SDK de Flutter 1.8.0 y posteriores, la URL base ya no se almacena en caché en la configuración de la aplicación. Esto significa que se puede cambiar el valor baseUrl y el cliente de la aplicación usará la configuración actualizada. En versiones anteriores del SDK, los cambios en el valor baseUrl en una configuración de la aplicación almacenada en caché no surten efecto.

Obsoleto desde la 1.6.0 versión: App.localAppName y App.localAppVersion ya no se utilizan.

Puede agregar argumentos opcionales a AppConfiguration para un control más detallado de su App cliente. Quizás desee agregar opciones como tiempos de espera personalizados para las conexiones o claves para el cifrado de metadatos locales. Para obtener más información sobre las opciones de configuración disponibles, consulte la documentación de referencia de AppConfiguration.

final appConfig = AppConfiguration(appId,
defaultRequestTimeout: const Duration(seconds: 120)
// ... see reference docs for all available configuration options
);

Nota

Conectarse usando Android 7 o anterior

El cliente HTTP predeterminado incluido en el SDK de Flutter de Realm no funciona con apps que se ejecutan en Android 7 o versiones anteriores. Para solucionarlo, debes agregar un cliente HTTP personalizado a tu.AppConfiguration Para obtener más información, consulta "Conectarse a los servicios de apps con Android 7 o versiones anteriores".

Nuevo en la versión 1.7.0.

Después de crear una App instancia en el aislamiento principal, puede acceder a la instancia construida en un aislamiento en segundo plano pasando el ID de la aplicación al método App.getById(). Después, puede usarla para trabajar con App y los usuarios según sea necesario.

// Create an App instance once on main isolate,
// ideally as soon as the app starts
final appConfig = AppConfiguration(appId);
final app = App(appConfig);
final receivePort = ReceivePort();
// Later, access the App instance on background isolate
await Isolate.spawn((List<Object> args) async {
final sendPort = args[0] as SendPort;
final appId = args[1] as String;
try {
final backgroundApp = App.getById(appId);
// ... Access App users
final user = backgroundApp?.currentUser!;
// Use the App and user as needed.
sendPort.send('Background task completed');
} catch (e) {
sendPort.send('Error: $e');
}
}, [receivePort.sendPort, appId]);

De forma predeterminada, el SDK de dispositivos Atlas se conecta a Atlas mediante el valor global baseUrl de https://services.cloud.mongodb.com. En algunos casos, es posible que desee conectarse a un servidor diferente:

  • Su aplicación de Servicios de aplicaciones utiliza una implementación local y desea conectarse directamente a un baseUrl local en su región.

Para obtener más información, consulte la documentación de Servicios de aplicaciones de implementación local.

Puede especificar un baseUrl en AppConfiguration:

// Specify a baseUrl to connect to a server other than the default
final appConfig =
AppConfiguration(appId, baseUrl: Uri.parse('https://example.com'));
var app = App(appConfig);

Nuevo en la versión 1.8.0.

Cambiado en la 2.2.0 versión: updateBaseUrl acepta null el valor

En algunos casos, es posible que desees cambiar baseUrl mientras la aplicación se está ejecutando.

Para cambiar baseUrl durante la ejecución, llame al método experimental app.updateBaseUrl. Puede pasar null para restablecer baseUrl al valor predeterminado.

// Specify a custom baseUrl to connect to.
// In this case, a custom server instance running on the device.
final appConfig = AppConfiguration(customServerAppId,
baseUrl: Uri.parse('http://localhost:80'));
var app = App(appConfig);
// ... log in a user and use the app ...
// Later, change the baseUrl to the default:
// https://services.cloud.mongodb.com
await app.updateBaseUrl(null);

Esta API es experimental y puede cambiar en futuras versiones.

Si desea cambiar el baseUrl después de iniciar sesión y abrir una base de datos sincronizada, la aplicación debe restablecer el cliente. Para obtener más información, consulte Restablecimiento del cliente.

Realice lo siguiente en su código:

  1. Pausar la sesión de sincronización

  2. Actualice el baseUrl utilizando el método app.updateBaseUrl

  3. Vuelva a autenticar al usuario para iniciar sesión utilizando el nuevo baseUrl

  4. Abra una base de datos sincronizada que extraiga datos del nuevo servidor

Tanto el servidor como el cliente deben estar en línea para que el usuario se autentique y se conecte al nuevo servidor. Si el servidor no está en línea o el cliente no tiene conexión de red, el usuario no podrá autenticarse ni abrir la base de datos.

Volver

Servicios de aplicaciones Atlas

En esta página