

適用於 Xamarin 的 AWS Mobile SDK 現在已包含在 中 適用於 .NET 的 AWS SDK。本指南參考 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>

開始本教學課程之前，您必須完成[設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK](setup.md) 上的所有說明。

### 授予對 Cognito 同步資源的存取權
<a name="grant-access-to-your-cognito-sync-resources"></a>

與您在設定期間建立的未驗證和驗證角色相關聯的預設政策，會授予應用程式對 Cognito Sync 的存取權。無需進一步設定。

### 將用於 Cognito 同步的 NuGet 套件新增至您的專案
<a name="add-nuget-package-for-cognito-sync-to-your-project"></a>

請遵循[設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK](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 建立關聯。

如需 Cognito Sync 的詳細資訊，請參閱 [Amazon Cognito Sync](cognito-sync.md)。