Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ /

连接到 App Services - C++ SDK

在此页面上

  • 先决条件
  • 访问应用程序客户端
  • 设置自定义HTTP headers
  • 在 Realm 中使用 HTTP proxy
  • 加密应用元数据

应用客户端是 Atlas App Services 后端接口。 它提供对身份验证和 Atlas Function 的访问。

App Services App 的某些功能与用户帐户相关联。 例如,您需要先对用户进行身份验证,然后才能访问应用程序的功能。

在连接到Atlas App Services之前,您需要一个带有 App ID的App Services App 。 要开始使用,请参阅App Services文档中的创建应用

要了解如何在ID Atlas App Services用户界面中 查找 App 请参阅 文档中的查找 AppID Atlas App ServicesID。

  1. 在 Realm 用户界面中查找应用程序 ID。

  2. 创建一个Realm::App::configuration() ,并将您的应用的 ID 作为参数。 您可以选择通过应用配置配置其他详细信息。

  3. 使用此 realm::App::configuration()初始化应用程序。 您可以使用此 App 实例在整个客户端应用程序中访问Atlas App Services功能。

auto appConfig = realm::App::configuration();
appConfig.app_id = APP_ID;
auto app = realm::App(appConfig);

提示

构建 Android 应用

构建使用 Realm C++ SDK 的 Android 应用程序时,您必须将filesDir.path传递给db_config构造函数中的file_path参数。 有关更多信息,请参阅:构建 Android 应用。

如果您将Atlas App Services或Device Sync与代理设置一起使用,则可能需要设置自定义HTTP headers 。 支持在RealmC++ SDK HTTP headersrealm::App::configuration() realm::db_config 上设置自定义 。

初始化应用配置时,请传入字符串标头键和值的映射。

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);

如果您调用函数,则应用程序将使用这些自定义标头。

如果要在 Device Sync 中使用自定义标头,则必须另外在 域::db_config 上设置标头。

如果您已配置 HTTP proxy,则可以使用 HTTP tunneling 来路由 Realm 流量。

要将 Realm 配置为使用 HTTP proxy,请执行以下操作:

  1. 使用代理的详细信息初始化proxy_config

  2. 在您的realm::App::configuration 上设置代理配置。

  3. 在您的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);

当您连接到 App Services 时,Realm 会在设备上创建额外的元数据文件。有关这些元数据文件的更多信息,请参阅适用于 C++ 的 Atlas Device SDK。

您可以加密 App Services 在客户端设备上存储的元数据,这与加密域类似。

在 Apple 设备上,元数据默认已加密。 要禁用此功能,请将REALM_DISABLE_METADATA_ENCRYPTION添加到环境变量中。

要在其他平台上启用元数据加密,必须在realm::App::configuration上设置metadata_encryption_key

// 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);

后退

应用程序服务