http - 在 Flutter 中使用服务器定期更新本地数据
问题描述
我在我的应用程序中使用 Flutter,我想将我的本地数据与服务器的数据同步。原因是数据同时显示在几个设备上,我希望始终在这些设备上显示更新的数据。(延迟几秒也没问题,我不需要瞬间同步)
我知道 Firebase 是实现此目的的完美选择。但我对后端没有任何控制权。我有一个 REST API,我必须找到一种使用它的方法。(注意我使用http包请求API)
我相信一个不错的选择是订阅设备以推送通知。每次在服务器上更新数据时,都会向他们发送推送通知,以便他们知道他们必须请求 API。但是,令我难过的是,我对后端没有任何控制权。
所以,我唯一能想到的是一个定期(即每 10 秒)获取数据的计时器。
你能告诉我这是否是一个好的选择吗?如果是,你将如何实现它。如果没有,我有什么更好的选择?
(请注意,我使用 Provider 模式来更新 UI(但这对您来说并不重要)。
非常感谢你:)
解决方案
您可以将要定期更新的屏幕主体包装在 streambuilder 类中。在流参数中,您可以提供从中获取数据的 Firestore 实例,如果数据有任何更改(如删除或创建),它将反映在您的 ui 中。
推荐阅读
- javascript - 事件处理程序内部未更新反应状态
- numpy - ValueError: `validation_split` 仅支持张量或 NumPy 数组,在输入中找到以下类型[
] - python - 在pywavelet中,当我想分析1hz到100hz开始的啁啾时,为什么不能使用中心频率=50?
- javascript - 如何使用 jQuery 从表单操作中获取 URL 属性?
- java - 根据一个字段的列表从对象列表中选择一些对象
- python - 根据给定选项读取文件
- c# - C#访问来自不同类的字典
- flutter - GetX 控制器不自动处理
- javascript - 如何在每次测试中重置动态模拟?
- python - 如何在 python 3.0 中使用“Def”和“Return”代码