El cliente de la aplicación es la interfaz backend de Atlas App Services. Proporciona acceso a la autenticación y a las funciones de Atlas.
Algunas de las funcionalidades de tu App Services App están asociadas con cuentas de usuario. Por ejemplo, es necesario autenticar a un usuario antes de poder acceder a las funciones de tu aplicación.
Requisitos previos
Antes de poder conectarse a Atlas App Services, necesita una aplicación de App Services con un ID de aplicación. Para comenzar, consulte Cree una aplicación en la documentación de App Services.
Para saber cómo encontrar su ID de aplicación en la interfaz de usuario de App Services, consulte Encontrar su ID de aplicación en la documentación de App Services.
Access the App Client
Create a realm::App::configuration() with with your App's ID as the argument. You can optionally configure additional details through the App configuration.
Inicializar una aplicación usando esto
realm::App::configuration()Utilice esta instanciaApppara acceder a las funciones de App Services en toda su aplicación cliente.
auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; auto app = realm::App(appConfig);
Tip
Construyendo una aplicación de Android
When building an Android app that uses the Realm C++ SDK, you must pass the filesDir.path to the file_path parameter in the db_config constructor. For more information, refer to: Build an Android App.
Establecer HTTP Headers personalizados
Si usa App Services o Device Sync con una configuración de proxy, es posible que necesite configurar encabezados HTTP personalizados. El SDK de Realm C++ permite configurar encabezados HTTP personalizados en realm::App::configuration() y realm::db_config.
Cuando inicialice la configuración de la aplicación, pase un mapa de claves y valores de encabezado de cadena.
std::map<std::string, std::string> customHttpHeaders; customHttpHeaders.emplace("CUSTOM_HEADER_NAME", "CUSTOM_HEADER_VALUE"); auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; appConfig.custom_http_headers = customHttpHeaders; auto app = realm::App(appConfig);
If you call a function, the App uses these custom headers.
If you want to use custom headers with Device Sync, you must additionally set the headers on the realm::db_config.
Use an HTTP Proxy with Realm
If you have configured an HTTP proxy, you can use HTTP tunneling to route your Realm traffic.
Para configurar Realm para que utilice su proxy HTTP:
Inicializa un proxy_config con los detalles de tu proxy.
Establezca la configuración del proxy en su realm::App::configuration.
Configure la configuración del proxy en su realm::db_config.
auto proxyConfig = realm::proxy_config(); proxyConfig.port = 8080; proxyConfig.address = "127.0.0.1"; proxyConfig.username_password = {"username", "password"}; auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; appConfig.proxy_configuration = proxyConfig; auto app = realm::App(appConfig); auto user = app.get_current_user(); auto syncConfig = user->flexible_sync_configuration(); syncConfig.set_proxy_config(proxyConfig); auto syncedRealm = realm::db(syncConfig);
Encriptar Metadatos de la aplicación
When you connect to App Services, Realm creates additional metadata files on a device. For more information about these metadata files, refer to Atlas Device SDK for C++.
You can encrypt the metadata that App Services stores on client devices, similar to encrypting the realm.
On Apple devices, the metadata is encrypted by default. To disable this, add REALM_DISABLE_METADATA_ENCRYPTION to your environment variables.
To enable metadata encryption on other platforms, you must set a metadata_encryption_key on your realm::App::configuration.
// Check if we already have a key stored in the platform's secure storage. // If we don't, generate a new one. // Use your preferred method to generate a key. This example key is // NOT representative of a secure encryption key. It only exists to // illustrate the form your key might take. std::array<char, 64> exampleKey = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0}; // Create and populate an App configuration. auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; // Specify the metadata key. appConfig.metadata_encryption_key = exampleKey; // Use the configuration when you open the app. auto app = realm::App(appConfig);