synchronization - 当站点重新联机时,Amplify DataStore 订阅不同步
问题描述
当我的应用程序有两个实例正在运行,并且实例 A 在在线模式下(通过 Internet 连接)改变对象时,实例 B 会检测到这一点并根据需要进行相应更新。但是,如果实例 A 在离线模式下变异数据然后上线,则实例 B(始终在线)不会通过订阅检测到这一点。实例 B 仅在运行查询时更新。这是预期的行为还是我可能错误地设置了订阅?
解决方案
当您订阅提供更改通知的更改时。更改可以是本地的或基于云的。如果您处于离线状态并使用 进行更改DataStore.save
,那么您将收到相关通知。如果您在线并且另一台设备上的应用程序更改了云中的数据,您应该会收到通知。
通知用于实时更新。即使没有通知,您的应用最终也会收到数据。您必须选择是否需要实时更新,然后订阅。
您还必须做一些事情来使您的应用程序更新其显示。仅仅因为 appsync 从云更新了本地副本,或者您订阅并收到了更改通知,并不意味着您的应用程序会更改显示的内容。该应用程序必须做一些事情来处理更改。这可能是运行一个新查询,或者将通知中提供的值添加到某个应用程序数据变量。
在不知道您的应用程序的结构的情况下,很难提供更好的解释。
推荐阅读
- c# - 事件没有使用 WebClient 触发……怎么了?
- amazon-web-services - 多个 docker 容器和使用 AWS 的 scallinguUp
- ubuntu - 无法在 nginx 中配置 proxy_pass
- python - 如何根据我按下的按钮使直流电机旋转不同的方向
- swift - 如何在 SwiftUI 中移动到下一个 TextField?
- javascript - Parceljs 没有正确捆绑产品?
- java - 使用 if 语句查找 3 个变量中的最小值
- angular - Fullcalendar - 角度营业时间未显示
- javascript - I don't understand why my for loop return "undefined"
- python - 如何从子集中选择数据