App Services への接続 - C++ SDK
App クライアントは、Atlas App Services バックエンド インターフェイスです。 認証と Atlas Function へのアクセスを提供します。
App Services Appの機能の一部は、ユーザー アカウントに関連付けられています。 たとえば、アプリの機能にアクセスする前にユーザーを認証する必要があります。
前提条件
Atlas App Services に接続する前に、アプリ ID を持つ App Services App が必要です。 開始するには、App Services ドキュメントの「 アプリの作成」を参照してください。
App Services UI でアプリケーション ID を見つける方法については、App Services ドキュメントの「 アプリケーション ID の検索 」を参照してください。
アプリ クライアントへのアクセス
アプリの ID を引数として、 Realm::App::configuration()を作成します。 オプションで、 アプリ構成 を通じて追加の詳細を構成できます。
この
realm::App::configuration()
を使用してアプリを初期化します。 このApp
インスタンスを使用して、クライアント アプリケーション全体で App Services 機能にアクセスします。
auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; auto app = realm::App(appConfig);
Tip
Android アプリの作成
Realm C++ SDK を使用する Android アプリを作成する場合は、 db_configコンストラクターのfile_path
パラメーターにfilesDir.path
を渡す必要があります。 詳しくは、「 Android アプリを作成する 」を参照してください。
カスタムHTTP headers設定
App Services またはDevice Syncをプロキシ設定で使用する場合は、カスタムHTTP headersを設定する必要がある場合があります。 RealmC++ SDKHTTP headersは、Realm ::App::configuration() および Realm::db_config でカスタム の設定をサポートしています。
アプリ構成を初期化するときに、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);
関数を呼び出すと、アプリはこれらのカスタム ヘッダーを使用します。
Device Sync でカスタム ヘッダーを使用する場合は、 Realm::db_config でヘッダーを追加で設定する必要があります。
での の使用HTTP proxyRealm
HTTP proxyを設定した場合は、 HTTPトンネルを使用してRealmトラフィックをルーティングできます。
を使用するように構成するにはRealmHTTP proxy 次の手順に従います。
プロキシの詳細を使用してproxy_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);
アプリ メタデータの暗号化
Atlas App Services に接続すると、Realm はデバイス上に追加のメタデータ ファイルを作成します。 これらのメタデータ ファイルの詳細については、「 C++ 用の Atlas Device SDK 」を参照してください。
Realm を暗号化するのと同様に、App Services がクライアントデバイスに保存するメタデータを暗号化できます。
Apple デバイスでは、メタデータはデフォルトで暗号化されます。 これを無効にするには、環境変数にREALM_DISABLE_METADATA_ENCRYPTION
を追加します。
他のプラットフォームでメタデータの暗号化を有効にするには、 Realm::App:: 構成で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);