首页 > 解决方案 > 在 Flutter 中使用服务器定期更新本地数据

问题描述

我在我的应用程序中使用 Flutter,我想将我的本地数据与服务器的数据同步。原因是数据同时显示在几个设备上,我希望始终在这些设备上显示更新的数据。(延迟几秒也没问题,我不需要瞬间同步)

我知道 Firebase 是实现此目的的完美选择。但我对后端没有任何控制权。我有一个 REST API,我必须找到一种使用它的方法。(注意我使用http包请求API)

我相信一个不错的选择是订阅设备以推送通知。每次在服务器上更新数据时,都会向他们发送推送通知,以便他们知道他们必须请求 API。但是,令我难过的是,我对后端没有任何控制权。

所以,我唯一能想到的是一个定期(即每 10 秒)获取数据的计时器。

你能告诉我这是否是一个好的选择吗?如果是,你将如何实现它。如果没有,我有什么更好的选择?

(请注意,我使用 Provider 模式来更新 UI(但这对您来说并不重要)。

非常感谢你:)

标签: httpflutterdart

解决方案


您可以将要定期更新的屏幕主体包装在 streambuilder 类中。在流参数中,您可以提供从中获取数据的 Firestore 实例,如果数据有任何更改(如删除或创建),它将反映在您的 ui 中。


推荐阅读