

适用于 Xamarin 的 AWS 移动 SDK 现已包含在。 适用于 .NET 的 AWS SDK本指南参考了适用于 Xamarin 的 Mobile SDK 的存档版本。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Cognito Sync 同步用户数据
<a name="getting-started-sync-data"></a>

Amazon Cognito Sync 让您可以轻松地在 AWS 云中保存移动用户数据（如应用程序首选项或游戏状态），无需编写任何后端代码或管理任何基础设施。您可以将数据本地保存在用户的设备上，这样，即使设备离线，应用程序也能工作。您也可以在用户的多个设备间同步数据，这样，无论他们使用什么设备，都可以得到一致的应用程序体验。

下面的教程将阐述如何将 Sync 与您的应用程序集成。

## 项目设置
<a name="project-setup"></a>

### 先决条件
<a name="prerequisites"></a>

在开始本教程前，必须先完成有关[设置适用于 .NET 和 Xamarin 的 AWS Mobile SDK](setup.md) 的说明中的所有步骤。

### 授予访问您的 Cognito Sync 资源的权限
<a name="grant-access-to-your-cognito-sync-resources"></a>

按照与您在设置期间所创建的未经身份验证和经过身份验证的角色相关联的默认策略，将授予您的应用程序访问 Cognito Sync 的权限。无需作进一步配置。

### 将 Cognito 同步的 Pack NuGet age 添加到你的项目中
<a name="add-nuget-package-for-cognito-sync-to-your-project"></a>

按照[设置适用于.NET 和 Xamarin 的 AWS 移动软件开发工具包中说明的第 4 步，将 Cog SyncManager NuGet n](setup.md) ito 软件包添加到您的项目中。

## 初始化 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` 的实例。D openOrCreate ataset 方法用于创建新的数据集或打开设备上本地存储的数据集的现有实例：

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

### 将用户数据添加至数据集
<a name="add-user-data-to-the-dataset"></a>

用户数据以 key/value 成对的形式添加：

```
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 关联。

有关 Cognito Sync 的更多信息，请参阅 [Amazon Cognito Sync](cognito-sync.md)。