使用 AWS 数据存储的完全离线选项,然后允许 Android 中的云同步功能进行可选激活



我已经使用 AwsAppsync 启动了一个项目。

该应用程序将首先脱机。如果客户需要,我们希望提供在云中同步的选项作为以后的额外选项。因此,我像这样配置我的项目:

在build.gradle中添加了以下内容:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.2'
classpath 'com.amplifyframework:amplify-tools-gradle-plugin:0.2.1'
}
}
apply plugin: 'com.amplifyframework.amplifytools'

并添加了这些依赖项:

implementation 'com.amplifyframework:core:0.10.0'
implementation 'com.amplifyframework:aws-api:0.10.0' // If using cloud sync
implementation 'com.amplifyframework:aws-datastore:0.10.0'

然后使用 Amplify CLI:

复制 通过执行此 Amplify CLI 命令随时生成模型:

amplify codegen models

在此之后,在活动的创建中:

ModelProvider modelProvider = AmplifyModelProvider.getInstance();
Amplify.addPlugin(AWSDataStorePlugin.forModels(modelProvider));
Amplify.configure(getApplicationContext());

有了这个,我可以查询,更新和删除数据。

这足以提供完整的离线体验吗?

现在,根据文档,要添加在线同步功能,我必须执行以下操作:

使用放大 CLI:

amplify push

这将使用同步配置创建 amplifyconfiguration.json。

现在,此信息似乎是在构建时设置的。那么,如何启用/禁用此功能以在需要时使用?文档提及以下内容:

ModelProvider modelProvider = AmplifyModelProvider.getInstance();
Amplify.addPlugin(AWSDataStorePlugin.forModels(modelProvider));
Amplify.addPlugin(new AWSApiPlugin()); // If using remote model synchronization
Amplify.configure(getApplicationContext());

那么,添加"新的AWSApiPlugin(("是启用/禁用此功能唯一需要做的事情吗?谢谢!

有什么教程/书籍足以解释这一点吗?我已经阅读了几份文件(包括官方文件(,但我无法找到有关此特定案例的内容。它从一开始就始终具有在线同步功能。

从高层次来看,是的,这是相当准确的。数据存储不需要后端,它只是用作各种本地数据库,可用于脱机(包括查询(。当您使用amplify push添加后端(这将部署由 DynamoDB 支持的 AppSync API(并将其与AWSApiPlugin连接时,它将开始同步。最好的教程在文档中:https://docs.amplify.aws

最新更新