Conectar ao App Services - C++ SDK
Nesta página
O cliente do aplicativo é a interface de backend do Atlas App Services. Ele fornece acesso à autenticação e ao Atlas Function.
Alguns dos recursos do seu aplicativo App Services estão associados a contas de usuário. Por exemplo, você precisa autenticar um usuário antes de poder acessar as funções do seu aplicativo.
Pré-requisitos
Antes de se conectar ao Atlas App Services, você precisa de um App Services App com uma ID de aplicativo. Para começar, consulte Criar um Aplicativo na documentação do App Services.
Para saber como localizar sua ID do aplicativo na interface do usuário do Atlas App Services , consulte Encontrar sua ID do aplicativo na documentação do Atlas App Services .
Acesse o cliente do aplicativo
Encontre o ID do aplicativo na interface do usuário do Realm.
Crie um realm::App::configuration() com o ID do seu aplicativo como argumento. Opcionalmente, você pode configurar detalhes adicionais por meio da configuração da aplicação.
Inicialize um aplicativo usando este
realm::App::configuration()
. Use esta instânciaApp
para acessar os recursos do Atlas App Services em todo o seu aplicativo cliente.
auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; auto app = realm::App(appConfig);
Dica
Construindo um aplicativo Android
Ao construir um aplicativo Android que utiliza o Realm C++ SDK, você deve passar o parâmetro filesDir.path
para o parâmetro file_path
no construtor db_config . Para obter mais informações, consulte: Criar um aplicativo Android.
Definir HTTP headerspersonalizados
Se você usar o Atlas App Services ou o Device Sync com uma configuração de proxy, talvez seja necessário definir HTTP headers personalizados. O Realm C++ SDK suporta a definição de HTTP headers personalizados no domínio::App::configuration() e no domínio::db_config.
Ao inicializar a configuração do aplicativo, passe um mapa de chaves e valores do cabeçalho da string.
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);
Se você chamar uma função , o aplicativo usará esses cabeçalhos personalizados.
Se você quiser usar cabeçalhos personalizados com o Realm Mobile Sync, definir adicionalmente os cabeçalhos no Realm::db_config.
Use um proxy HTTP com o Realm
Se você configurou um proxy HTTP, poderá usar o túnel HTTP para rotear o tráfego do Realm.
Para configurar o Realm para usar seu HTTP proxy:
Inicialize um proxy_config com os detalhes do seu proxy.
Defina a configuração de proxy no seu domínio::App::configuration.
Defina a configuração do proxy no seu domínio::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);
Criptografar metadados de aplicativos
Quando você se conecta ao realm do serviço, o Realm cria arquivos de metadados adicionais em um dispositivo. Para mais informações sobre estes arquivos de metadados, consulte Atlas Device SDK for C++.
Você pode criptografar os metadados que o App Services armazena em dispositivos cliente de forma semelhante à criptografia do Realm.
Em dispositivos Apple, os metadados são criptografados por padrão. Para desabilitar isso, adicione REALM_DISABLE_METADATA_ENCRYPTION
às suas variáveis de ambiente.
Para habilitar a criptografia de metadados em outras plataformas, você deve definir um metadata_encryption_key
em seu 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);