我已经使用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
此活动的onCreate之后:
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());
因此,要启用/禁用此功能,我唯一需要做的就是添加“ new AWSApiPlugin()”?谢谢!
任何教程/书足以解释这一点吗?我已经阅读了一些文档(包括官方文档),但无法找到有关此特定案例的信息。从一开始就始终具有在线同步功能。
从高层次上讲,是的,这是相当准确的。 DataStore不需要后端,它仅可用作本地的各种数据库,可用于脱机(包括查询)。当您使用amplify push
添加后端(这将部署由DynamoDB支持的AppSync API)并将其与AWSApiPlugin
连接时,它将开始同步。最好的教程在文档中:https://docs.amplify.aws