3

我已经使用 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()”来启用/禁用此功能?谢谢!

任何足以解释这一点的教程/书籍?我已经阅读了几个文档(包括官方文档),但我无法找到有关此特定案例的信息。从一开始就始终在线同步。

4

1 回答 1

-1

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

于 2020-06-01T06:17:52.417 回答