使用AWS DataStore的完全脱机选项,然后允许对Android中的云同步功能进行可选激活

问题描述 投票:0回答:1

我已经使用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()”?谢谢!

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

android aws-amplify aws-appsync aws-amplify-sdk-android
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.