对于 Amplify Datastore 设置,有没有办法关闭 AWS AppSync 以仅在本地工作?

For an Amplify Datastore setup, is there a way to turn off AWS AppSync to just work locally?

我正在使用启用了 AppSync 的 Amplify Datastore。数据同步在本地和云之间工作,但是在开发过程中必须执行放大推送来更新云会占用很多时间。

如何关闭 AWS AppSync?

你可以看看 Full offline option using AWS DataStore and then allow an optional activation for the the cloud sync features in Android

似乎 DataStore 思维定式首先在 AWS 中可用 API 离线,因此没有选项可以在执行 [=11= 时不在 AWS 中创建 API ].

是的! DataStore 可以在有或没有任何云同步的情况下使用。

Android

添加 API 插件后启用云同步。要禁用云同步,请不要添加 AWSApiPlugin():

Amplify.addPlugin(AWSDataStorePlugin())

// Comment out this line:
// Amplify.addPlugin(AWSApiPlugin())

Amplify.configure(applicationContext)

iOS

存在 API 插件时启用同步。要禁用同步,请不要添加 AWSAPIPlugin():

let dataStorePlugin =
    AWSDataStorePlugin(modelRegistration: AmplifyModels())
try Amplify.add(plugin: dataStorePlugin)

// Comment out this line:
// try Amplify.add(plugin: AWSAPIPlugin())

try Amplify.configure()

JavaScript

方法略有不同。在 aws-exports.js 文件中查找任何 API 配置,并将其删除。具体来说,您应该删除任何前缀为 aws_appsync_* 的配置条目:

const awsmobile = {
    // ...
    "aws_appsync_graphqlEndpoint": "https://yourid.appsync-api.us-east-1.amazonaws.com/graphql",
    "aws_appsync_region": "us-east-1",
    "aws_appsync_authenticationType": "AMAZON_COGNITO_USER_POOLS",
    // ...
};

开发期间离线工作的正常解决方案是在项目设置期间不运行 amplify push。您可以在本地 运行 您的应用程序,一切正常,但不会尝试同步到云端。当您更改架构时,您 运行 amplify codegen models 并且所有模型都在本地更新。

当您最终准备好部署到云并以 online/offline 模式启动 运行ning 时,您 运行 amplify push 将配置所有云资源。即使在这之后,您仍然可以 运行 本地,只能使用浏览器开发工具禁用网络连接。

我不知道如何将项目设置回 amplify push 之前的状态,但我想要答案。我确定这是项目中放大配置中某处的设置。