Docs Menu
Docs Home
/ /
Atlas App Services
/ /

Atlas および他のデバイスによるクライアント アプリケーションのデータの同期

項目一覧

  • Atlasアクセスの設定
  • Atlas App Services アプリの作成
  • Device Sync の構成
  • 認証プロバイダを有効にする
  • App Services スキーマの生成
  • クライアント アプリケーションへの同期の追加
  • クライアントを App Services バックエンドに接続する
  • ユーザーの認証
  • 同期された Realm を開く
  • 既存のデータを同期された Realm にコピーする
  • 同期された Realm の使用

Realm Database を使用するモバイルまたはクライアント アプリケーションがあり、そのデータを他のデバイス間で同期し、MongoDB Atlas にバックアップしたい場合は、Device Sync を使用してそれが可能です。 開始するには、次の高レベルの手順に従います。

1

App Services アプリケーションは、クライアント デバイスが MongoDB Atlas に接続できるようにするゲートウェイです。 アプリを作成するときは、名前を付け、Atlas クラスターにリンクし、アプリケーションに最適な配置モデルと配置リージョンを指定します。

App Services Appの作成方法については、「 アプリの作成 」を参照してください

2

Device Sync は、Atlas への同期データとクライアント デバイス間でのデータ同期を管理するサービスです。 Device Sync は、Realm SDK と合わせて、ネットワーク接続、競合の解決、ユーザー認証、ユーザー権限とデータアクセスを自動的に管理します。

Device Sync を構成するときは、クライアント デバイスがアクセスできるデータソースと、ユーザーが読み書きできるデータを決定する権限を指定します。

Device Sync は、 Atlas UI、Atlas App Services コマンドラインインターフェイス、または App Services Admin API経由で構成できます。 Device Sync を初めて構成するときに、Atlas UI を使用すると便利な場合があります。これには、さまざまな設定やオプションに関するリンクと情報が提供されるためです。

3

同期されたデータにアクセスするには、クライアント ユーザーは認証を受ける必要があります。 App Services は、ユーザーが認証できるようにするためのいくつかの認証プロバイダを提供します。 クライアント アプリケーションで認証を有効にするには、これらの認証プロバイダの 1 つ以上を構成します。

Atlas App Services App UI 内で認証プロバイダーを構成するには、左側のナビゲーション メニューで [ Authenticationを選択し、構成するプロバイダーをクリックします。 また、 Atlas App Services コマンドライン インターフェースまたは App Services Admin API を使用して App Services 構成を編集し、認証プロバイダを設定することもできます。

4

Realm Database を使用するクライアント アプリケーションがすでに存在する場合は、Realm オブジェクトモデルを使用して、クライアント デバイスと Atlas 間でデータをマッピングする App Services スキーマを生成できます。 同期された Realm データからオブジェクトモデル データを読み取り、そのデータからスキーマを生成する機能である 開発モード を有効にすることで、これを実現できます。

Realm オブジェクトモデルから App Services スキーマを生成する方法の詳細については、「 Realm オブジェクトモデルからApp Services スキーマを作成する 」を参照してください。

この後は、Atlas 側で必要なすべてのセットアップが完了し、クライアント アプリケーションでデータを同期する準備ができます。 Realm Database を使用してデータを保持するクライアント アプリケーションがすでに存在する場合は、そのデータをデバイス間で同期したり、Atlas と同期したりするために必要な要素はいくつか追加するだけです。

1

クライアント アプリケーション コードで、App クライアントを初期化し、クライアントを App Services バックエンドに接続します。 これにより、クライアントは認証などの App Services 機能を使用できるようになり、同期された Realm を開くことができるようになります。

2

同期されたデータにアクセスするには、クライアント アプリケーション ユーザーが App Services バックエンドで認証される必要があります。 ユーザーを登録およびログインするためのロジックをクライアント アプリに追加します。

3

認証されたユーザーを取得したら、Realm Database の同期されたインスタンスを開き、そのユーザーに使用できます。

クライアント コードで Flexible Sync クエリ サブスクリプションを定義して、クライアント アプリケーションに同期するデータを決定します。 Device Sync は、ユーザーが読み取りおよび書込み (write) 権限を持つ クエリに一致する Atlas ドキュメントを検索し、それらのドキュメントを Realm オブジェクトとしてクライアント デバイスに同期します。 Flexible Sync クエリ サブスクリプションを追加、削除、または更新して、デバイスに同期するドキュメントを変更できます。

4

すでにクライアント データがある場合、同期されていない Realm に Device Sync を直接追加することはできません。 同期されていない Realm から同期された Realm にデータをコピーする必要があります。 クライアント データがない場合は、この手順をスキップできます。

一部の SDK では、Realm を開くときにこれを実行できるメソッドが提供されています。 ただし、Realm SDK の多くは現在、Flexible Sync でこれらのメソッドの使用をサポートしていません。

SDK がローカル Realm の Flexible Sync Realm へのコピーをサポートしていない場合は、同期されていない Realm 内の各オブジェクトを反復処理し、同期された Realm にコピーするロジックを記述する必要があります。 これは 1 回限りのプロセスです。 データをコピーした後、同期されていない Realm を破棄し、同期された Realm のみを開くことができます。

5

同期された Realm で変更を読み取り、書込み、監視する構文は、同期されていない Realm の構文と同じです。 ローカル データを操作している間に、バックグラウンド スレッドが変更セットを効率的に統合、アップロード、ダウンロードします。 書込み権限を持つユーザーがデバイスで変更を加えた場合、データはローカルに保持されます。 ユーザーがネットワークに接続すると、データは Atlas などのデバイスに自動的に同期されます。

戻る

クライアントと Atlas データの同期