代码之家  ›  专栏  ›  技术社区  ›  Chuender

在Flutter中,如何强制AWS数据存储从云端而非本地获取数据

  •  0
  • Chuender  · 技术社区  · 1 年前

    在为我的应用程序构建管理面板之前,有时我必须使用Amplify Studio从后端更新数据。当我这样做的时候,我能让更新数据在应用程序中本地显示的唯一方法是使用DataStore.stop(),然后使用DataStore.start(),这可能需要一些时间和资源。

    有没有一种方法可以强制Amplify从云中而不是从本地获取特定查询的数据,而不必停止和启动DataStore?

    0 回复  |  直到 1 年前
        1
  •  0
  •   ColaFanta    1 年前

    背后的想法 Amplify DataStore 是同步和缓存您的大部分云数据 局部 ,对您隐藏同步过程,并使您与本地数据的交互就像进行实时在线查询一样。

    根据 documentation ,这些本地数据将被重新评估 只有 通过重新启动数据存储时 .stop() .start()

    但是,如果您的数据在其他地方发生变化,例如 Amplify Studio 除了客户端应用程序之外,您实际上应该自动观察数据更改,而不是每次在云上进行更改时都通过重新启动数据存储来强制重新蚀刻数据,因为这更像是一个业务逻辑问题,而不是缓存机制问题。

    我想这样做是为了 observeQuery 在组件内部:

    Amplify.DataStore.observeQuery(
          Post.classType,
        ).listen((QuerySnapshot<Post> snapshot) {
          setState(() {
            _posts = snapshot.items;
          });
        });
    

    参考 here