Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Atlas App Services アプリへの接続 - React Native SDK

項目一覧

  • 始める前に
  • アプリ クライアントの構成
  • アプリ クライアントのインスタンスの取得
  • アプリ プロバイダー外でアプリを取得する
  • アプリ メタデータの暗号化
  • 特定のサーバーへの接続
  • 実行中に別のサーバーへの接続

App クライアントは、App Services バックエンドへのインターフェースです。 認証機能Atlas FunctionsAtlas Device Sync へのアクセスを提供します。

  1. App Services アプリの作成

  2. アプリ ID の取得

アプリクライアントを設定するには、アプリ ID string をAppProvider idプロンプトに渡します。 アプリにアクセスするために必要なコンポーネントをAppProviderでラップします。 この例では、ユーザーを認証するためにUserProviderAppProviderでラップします。

import React from 'react';
import {AppProvider, UserProvider} from '@realm/react';
export const AppWithAuthHook = () => {
return (
<View>
<AppProvider id={APP_ID}>
<UserProvider fallback={LogIn}>
<MyApp />
</UserProvider>
</AppProvider>
</View>
);
};

複数のアプリに接続するには、複数のアプリクライアントインスタンスを作成します。 同じアプリ ID を共有するすべてのアプリクライアント インスタンスは、同じ基礎の接続を使用します。

重要

アプリ初期化後のアプリ構成の変更

バージョンrealm@12.6.0での変更: baseUrlはキャッシュされません

App クライアントを初期化すると、構成は内部的にキャッシュされます。 同じプロセス内で変更された構成でアプリを「閉じ」、その後再度開かしようとしても効果はありません。 クライアントはキャッシュされた構成を引き続き使用します。

React Native SDK バージョン12.6.0 以降では、baseUrl 内のAppConfiguration はキャッシュされ ません 。つまり、 baseUrlを変更すると、アプリクライアントは更新された構成を使用します。 以前の SDK バージョンでは、キャッシュされたアプリ構成でbaseUrlを変更しても効果はありません。

AppProviderでラップされたすべてのコンポーネントは、 useApp()フックを使用してアプリクライアントにアクセスできます。

import React from 'react';
import {useApp} from '@realm/react';
function MyApp() {
const app = useApp();
// Proceed to app logic...
}

アプリケーション内のどこからでもアプリクライアントのインスタンスを取得するには、 realmパッケージからRealm.App()の新しいインスタンスをインスタンス化し、 App IDを渡します。

import Realm from 'realm';
const app = Realm.App.getApp("<Your App ID>");

App Services がクライアント デバイスに保存するメタデータを暗号化できます。 暗号化動作を決定するには、 MetadataMode 列挙型の値を使用します。

アプリのメタデータを暗号化するには:

  1. Realm MetadataModeをインポートし、他の依存関係をインポートします。

    import React from 'react';
    import {Text, View} from 'react-native';
    import {MetadataMode} from 'realm';
    import {AppProvider} from '@realm/react';
  2. metadataプロパティを含むアプリ構成オブジェクトを作成します。

  3. metadata.modeMetadataMode.Encryptionに設定します。

  4. 暗号化に使用するキーにmetadata.encryptionKeyを設定します。

  5. アプリ構成オブジェクトをnew Realm.App()に渡します。

const EncryptMetadata = ({
encryptionKey,
}: {
encryptionKey: ArrayBuffer;
}) => {
const metadataConfig = {
mode: MetadataMode.Encryption,
encryptionKey: encryptionKey,
};
return (
<AppProvider
id={APP_ID}
metadata={metadataConfig}>
<RestOfApp />
</AppProvider>
);
};

デフォルトでは、Atlas Device SDK はhttps://services.cloud.mongodb.comのグローバルbaseURLを使用して Atlas に接続します。 場合によっては、別のサーバーに接続する必要があるかもしれません。

  • App Services Appはローカル配置を使用しており、リージョン内のローカル baseURL に直接接続する場合があります。

AppProviderのプロパティとしてbaseURLを指定できます。 すべてのAppConfigurationキーは、プロパティとしてAppProviderに渡すことができます。

バージョンrealm@12.8.0で変更されました

場合によっては、アプリが の実行中中にbaseURLを変更する必要があるかもしれません。

現在、この機能は特定のTypescript構成を必要とする実験的なモジュールとして実装されています。 必要な構成は、React Native アプリで動作させるのが困難な場合があります。 実装の詳細については、 Node.js SDK のドキュメントを参照してください。

戻る

Atlas App Services