AWS AppSync 如何在我离线时判断是不是存在未完成的突变?

Posted

技术标签:

【中文标题】AWS AppSync 如何在我离线时判断是不是存在未完成的突变?【英文标题】:AWS AppSync how can I tell if there are outstanding mutations when I'm offline?AWS AppSync 如何在我离线时判断是否存在未完成的突变? 【发布时间】:2020-01-07 02:57:43 【问题描述】:

我正在使用 AWS AppSync、Apollo 和 React Native。一起使用它们的一大优势是我获得了良好的离线行为。在我的应用程序中,我可以在离线时进行更改,当我重新上线时,它们都会排队并执行。

但是,如果有尚未发送到服务器的突变,我希望能够向用户显示。只是一些小图标或在一切更新后消失的东西。

谁能指出我正确的方向?我查看了AWSAppSyncClient 的离线配置,发现有一个callback 可以连接,但据我所知,它并没有提供足够的信息。

谢谢!

【问题讨论】:

【参考方案1】:

您是否考虑过使用放大库 - https://aws-amplify.github.io/docs/android/start?

当您在设备离线时进行突变时 - 它会被添加到本地队列(由 sqlite 保留)。一旦重新上线,它们就会从这个队列中被读取并串行发送到服务器。

现在离线时 - 您的应用程序代码将能够查询本地数据存储以确定突变仍然“离线”

在这里阅读更多:

https://aws-amplify.github.io/docs/android/api#client-architecture https://aws-amplify.github.io/docs/android/api#offline-mutations

【讨论】:

以上是关于AWS AppSync 如何在我离线时判断是不是存在未完成的突变?的主要内容,如果未能解决你的问题,请参考以下文章

当设备连接到网络时,AWS AppSync 离线突变会多次更新到服务器

如何处理与 AWS AppSync 离线同步的数据?

在 PWA 中离线时的图像存储

aws appsync 离线:收到错误未提供变量 ID

AWS AppSync 与 Laravel 的正确集成?

即使禁用离线,AWS AppSync 查询也会返回缓存响应