You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amplify Flutter与React同项目查询同一AWS表返回结果异常

问题根因

你的Flutter端仅配置了AmplifyDataStore插件,未添加配套的AmplifyAPI插件,导致DataStore仅工作在本地离线模式:所有读写操作都只针对设备本地的SQLite数据库,不会和AWS云端的AppSync、DynamoDB表同步,自然会出现两端数据完全隔离的现象。

现象解释

  • React端直接调用API.graphql接口,所有读写操作直接请求云端AppSync服务,数据直接写入DynamoDB表,因此你在AWS控制台可以看到React写入的数据。
  • Flutter端当前仅注册了DataStore插件,DataStore的默认逻辑是如果没有检测到配套的API插件,就不会触发云端同步逻辑,所有Amplify.DataStore.save、Amplify.DataStore.query操作都仅在本地执行,因此Flutter写入的数据仅在当前设备可见,不会同步到云端,React端和AWS控制台自然无法查看;反过来云端的React写入的数据也不会同步到Flutter本地,所以Flutter查询云端已有的数据会返回空列表。

解决步骤

  1. 在Flutter项目的pubspec.yaml中添加amplify_api依赖,注意版本要和你当前使用的amplify_flutter、amplify_datastore版本保持一致。
  2. 修改Amplify初始化逻辑,同时注册DataStore和API插件:
// 先导入amplify_api依赖
import 'package:amplify_api/amplify_api.dart';

Future<void> configureAmplify() async {
  Amplify.addPlugins([
    AmplifyDataStore(modelProvider: ModelProvider.instance),
    AmplifyAPI()
  ]);
  try {
    await Amplify.configure(amplifyconfig);
  } catch (e) {
    print("Amplify配置异常: $e");
  }
}
  1. 重新运行Flutter项目,此时DataStore会自动和云端AppSync完成双向同步,两端数据即可正常互通。

补充注意事项

如果配置后仍存在同步异常,可开启Amplify调试日志排查是否有权限、模型版本不匹配的问题;同时确认Flutter项目中的amplifyconfiguration.dart和React端的aws-exports.js配置参数完全一致,尤其是AppSync端点、区域、认证模式等核心配置。

内容的提问来源于stack exchange,提问作者Ranjan Raj Shrestha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:06:04