首页 > 解决方案 > 当站点重新联机时,Amplify DataStore 订阅不同步

问题描述

当我的应用程序有两个实例正在运行,并且实例 A 在在线模式下(通过 Internet 连接)改变对象时,实例 B 会检测到这一点并根据需要进行相应更新。但是,如果实例 A 在离线模式下变异数据然后上线,则实例 B(始终在线)不会通过订阅检测到这一点。实例 B 仅在运行查询时更新。这是预期的行为还是我可能错误地设置了订阅?

标签: synchronizationaws-amplifysubscriptiondatastore

解决方案


当您订阅提供更改通知的更改时。更改可以是本地的或基于云的。如果您处于离线状态并使用 进行更改DataStore.save,那么您将收到相关通知。如果您在线并且另一台设备上的应用程序更改了云中的数据,您应该会收到通知。

通知用于实时更新。即使没有通知,您的应用最终也会收到数据。您必须选择是否需要实时更新,然后订阅。

您还必须做一些事情来使您的应用程序更新其显示。仅仅因为 appsync 从云更新了本地副本,或者您订阅并收到了更改通知,并不意味着您的应用程序会更改显示的内容。该应用程序必须做一些事情来处理更改。这可能是运行一个新查询,或者将通知中提供的值添加到某个应用程序数据变量。

在不知道您的应用程序的结构的情况下,很难提供更好的解释。


推荐阅读