

 AWS Mobile SDK for Xamarin が に含まれるようになりました AWS SDK for .NET。このガイドでは、Mobile SDK for Xamarin のアーカイブバージョンについて説明します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ユーザーデータと Cognito Sync を同期する
<a name="getting-started-sync-data"></a>

Amazon Cognito Sync を使用すると、アプリケーションの設定やゲームの状態などのモバイルユーザーデータを AWS クラウドに簡単に保存できます。バックエンドコードの記述やインフラストラクチャの管理は必要ありません。ユーザーのデバイスにローカルでデータを保存すれば、デバイスがオフラインの場合でもアプリケーションを使用することができます。また、ユーザーのデバイス間でデータを同期して、使用するデバイスを問わずアプリのエクスペリエンスに整合性を持たせることもできます。

以下のチュートリアルでは、Sync をアプリに統合する方法について説明します。

## プロジェクトのセットアップ
<a name="project-setup"></a>

### 前提条件
<a name="prerequisites"></a>

このチュートリアルを開始する前に、必ず「[AWS Mobile SDK for .NET and Xamarin をセットアップする](setup.md)」の手順をすべて完了する必要があります。

### Cognito Sync リソースにアクセス権限を付与する
<a name="grant-access-to-your-cognito-sync-resources"></a>

セットアップ時に作成した未認証および承認済みのロールに関連付けられているデフォルトポリシーを使用して、アプリケーションから Cognito Sync にアクセスできるようにします。必要な設定はこれだけです。

### Cognito Sync の NuGet パッケージをプロジェクトに追加する
<a name="add-nuget-package-for-cognito-sync-to-your-project"></a>

「[AWS Mobile SDK for .NET and Xamarin をセットアップする](setup.md)」のステップ 4 に従って、Cognito SyncManager の NuGet パッケージをプロジェクトに追加します。

## CognitoSyncManager を初期化する
<a name="initialize-the-cognitosyncmanager"></a>

初期化した Amazon Cognito 認証情報プロバイダーを `CognitoSyncManager` コンストラクタに渡します。

```
CognitoSyncManager syncManager = new CognitoSyncManager (
    credentials,
    new AmazonCognitoSyncConfig {
        RegionEndpoint = RegionEndpoint.USEast1 // Region
    }
);
```

## ユーザーデータを同期する
<a name="syncing-user-data"></a>

未認証のユーザーデータを同期するには、以下のように行います。

1. データセットを作成します。

1. ユーザーデータをデータセットに追加します。

1. データセットをクラウドと同期します。

### データセットを作成する
<a name="create-a-dataset"></a>

`Dataset` のインスタンスを作成します。openOrCreateDataset メソッドは、新しいデータセットを作成するか、デバイスにローカルで保存されている既存のデータセットのインスタンスを開くために使用されます。

```
Dataset dataset = syncManager.OpenOrCreateDataset("myDataset");
```

### ユーザーデータをデータセットに追加する
<a name="add-user-data-to-the-dataset"></a>

ユーザーデータは、キーと値のペアの形式で追加されます。

```
dataset.OnSyncSuccess += SyncSuccessCallback;
dataset.Put("myKey", "myValue");
```

Cognito データセット関数は、キーによってアクセス可能な値を持つディクショナリとして機能します。

```
string myValue = dataset.Get("myKey");
```

### データセットを同期する
<a name="synchronize-dataset"></a>

データセットを同期するには、その同期メソッドを呼び出します。

```
dataset.SynchronizeAsync();

void SyncSuccessCallback(object sender, SyncSuccessEventArgs e) {
  // Your handler code here
}
```

データセットに書き込まれたデータはすべて、データセットが同期されるまでローカルに保存されます。このセクションのコードでは、未認証の Cognito ID を使用していることを前提としているため、ユーザーデータをクラウドと同期する際はデバイスごとに保存されます。デバイスには、デバイス ID が関連付けられています。クラウドと同期されると、ユーザーデータは、そのデバイス ID に関連付けられます。

Cognito Sync の詳細については、「[Amazon Cognito Sync](cognito-sync.md)」を参照してください。