我正在重新使用我的应用程序,它通过从网站获取原始数据来更新它的内部SQLite数据库,而不是官方API.

由于这非常容易出错,我想将数据处理从客户端移到后端服务器中.

我们的想法是每天多次在服务器上运行一个脚本 – 类似于之前的客户端行为 – 并将数据存储在Firebase实时数据库中.然后,所有客户端不再需要自己处理数据,而是从Firebase数据库请求解析的数据.

我只是想知道保持数据同步的最佳方法是什么.

我提出了两个想法,但由于我对Firebase不太熟悉,我不知道什么是更好的.

首先,我可以想象通过在某些节点上使用keepSynced()和setPersistenceEnabled()来保持客户端上的数据同步.

但我不确定这是否会在应用程序处于后台时保持数据最新.我也担心这种方法的电池和网络使用情况.

第三点是同时连接的数量,我问这种方法每个客户端都会一直连接,对吧?

第二种方法是使用FCM在其感兴趣的节点之一发生变化时通知客户端,例如,使用Firebase云功能来侦听事件并触发消息.

然后客户端将goOnline()再次与数据库和goOffline()同步.这将避免大量连接以及减少电池和网络使用.

但我不确定如何在离线时保留设备上的所有数据?

我不想使用SQLite数据库来保存设备上的数据.

setPersistenceEnabled()是否足以在设备上保留特定数量的数据库注释?

或者两者兼而有之?在所需节点上设置keepSynced()和setPersistenceEnabled(),并根据云消息设置goOnline()/ goOffline()?

任何基于自己的expiriences的帮助或建议欢迎!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐