在为我的应用程序构建管理面板之前,有时我必须使用 Amplify Studio 从后端更新数据。当我这样做时,让更新数据在我的应用程序本地显示的唯一方法是使用 DataStore.stop(),然后使用 DataStore.start(),这可能需要一些时间和资源。
有没有办法强制 Amplify 从云而不是本地获取特定查询的数据,而无需停止和启动 DataStore?
Amplify DataStore
背后的想法是在本地同步和缓存大部分云端数据,对您隐藏同步过程,让您与本地数据的交互就像实时在线查询一样。
根据文档,仅当您通过.stop()
和.start()
重新启动数据存储时,才会重新评估这些本地数据。
但是,如果您的数据在客户端应用程序之外的其他地方发生更改,例如
Amplify Studio
,那么您实际上应该自动观察数据更改,而不是每次在云上进行更改时通过重新启动数据存储来强制重新获取数据,因为它更像是业务逻辑问题而不是缓存机制问题。
我想在你的组件中使用
observeQuery
来做到这一点:
Amplify.DataStore.observeQuery(
Post.classType,
).listen((QuerySnapshot<Post> snapshot) {
setState(() {
_posts = snapshot.items;
});
});
参考这里