Flutter 应用程序数据存储未与 DynamoDB 同步

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

我的 flutter 应用程序无法检索 DynamoDB 中新添加的项目。

我在 dynamodb 中有一个项目(id:abc012345)。我的 flutter 应用程序允许我通过 ID 显示项目。最初,我搜索了该项目(id:abc012345)并显示在我的应用程序上。当我使用 appsync 使用 lambda 函数将其从 dynamodb 中删除时(ttl 为 0,因此它立即消失),该项目被删除并在我的应用程序中消失,这是预期的行为。但是,当我在 dynamodb 中创建具有相同 id(abc012345)的新项目并再次执行相同的过程时,我的应用程序无法找到该项目,而添加具有不同 id 的项目则没问题。我需要手动清除手机内部存储才能再次同步。

我猜重复使用 id 会导致缓存数据与后端实际数据不一致。如果我真的必须重复使用该 id 该怎么办?

flutter amazon-dynamodb aws-appsync aws-datastore
1个回答
0
投票

找到了解决此问题的方法。每次从 Dynamodb 中删除项目时,我都会清除数据存储。

  void observeDevice() {
    final devicesStream = _deviceRepo.observeDevices();
    devicesStream.listen((event) async {
      if (event.eventType == EventType.delete) {
        await Amplify.DataStore.clear();
        await Future.delayed(const Duration(seconds: 2));
      }
      getDevices();
    });
  }

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