使用 Cognito Sync 同步用户数据 - AWS Mobile SDK

AWS SDK for .NET 现在包括适用于 Xamarin 的 AWS Mobile SDK。本指南参考了适用于 Xamarin 的 Mobile SDK 的存档版本。

使用 Cognito Sync 同步用户数据

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

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

项目设置

先决条件

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

授予访问您的 Cognito Sync 资源的权限

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

将 Cognito Sync NuGet 程序包添加到您的项目中

按照设置适用于 .NET 和 Xamarin 的 AWS Mobile SDK 中第 4 步的说明操作,将 Cognito SyncManager NuGet 程序包添加到您的项目中。

初始化 CognitoSyncManager

将您的已初始化的 Amazon Cognito 凭证提供商传递给 CognitoSyncManager 构造函数:

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

同步用户数据

同步未经身份验证的用户数据:

  1. 创建一个数据集。

  2. 将用户数据添加至该数据集。

  3. 将数据集与云同步。

创建数据集

创建 Dataset 的实例。openOrCreateDataset 方法用于创建一个新的数据集或打开设备上本地存储的现有数据集的实例:

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

将用户数据添加至数据集

以键/值对的形式添加用户数据:

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

Cognito 数据集的功能与字典一样,包含可以通过键访问的值:

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

同步数据集

要同步数据集,请调用其同步方法:

dataset.SynchronizeAsync(); void SyncSuccessCallback(object sender, SyncSuccessEventArgs e) { // Your handler code here }

所有写入数据集的数据都存储在本地,直到数据集同步。本部分中的代码假定您使用的是未经身份验证的 Cognito 身份,所以,当用户数据与云同步时,将按设备存储数据。设备具有与其相关联的设备 ID。当用户数据同步到云时,用户数据将与该设备的 ID 关联。

有关 Cognito Sync 的更多信息,请参阅 Amazon Cognito Sync