android保持数据库,android – 保持Firebase实时数据库中的数据始终保持同步
我正在重新使用我的应用程序,它通过从网站获取原始数据来更新它的内部SQLite数据库,而不是官方API.由于这非常容易出错,我想将数据处理从客户端移到后端服务器中.我们的想法是每天多次在服务器上运行一个脚本 – 类似于之前的客户端行为 – 并将数据存储在Firebase实时数据库中.然后,所有客户端不再需要自己处理数据,而是从Firebase数据库请求解析的数据.我只是想知道保持数据同步的最佳方法
我正在重新使用我的应用程序,它通过从网站获取原始数据来更新它的内部SQLite数据库,而不是官方API.
由于这非常容易出错,我想将数据处理从客户端移到后端服务器中.
我们的想法是每天多次在服务器上运行一个脚本 – 类似于之前的客户端行为 – 并将数据存储在Firebase实时数据库中.然后,所有客户端不再需要自己处理数据,而是从Firebase数据库请求解析的数据.
我只是想知道保持数据同步的最佳方法是什么.
我提出了两个想法,但由于我对Firebase不太熟悉,我不知道什么是更好的.
首先,我可以想象通过在某些节点上使用keepSynced()和setPersistenceEnabled()来保持客户端上的数据同步.
但我不确定这是否会在应用程序处于后台时保持数据最新.我也担心这种方法的电池和网络使用情况.
第三点是同时连接的数量,我问这种方法每个客户端都会一直连接,对吧?
第二种方法是使用FCM在其感兴趣的节点之一发生变化时通知客户端,例如,使用Firebase云功能来侦听事件并触发消息.
然后客户端将goOnline()再次与数据库和goOffline()同步.这将避免大量连接以及减少电池和网络使用.
但我不确定如何在离线时保留设备上的所有数据?
我不想使用SQLite数据库来保存设备上的数据.
setPersistenceEnabled()是否足以在设备上保留特定数量的数据库注释?
或者两者兼而有之?在所需节点上设置keepSynced()和setPersistenceEnabled(),并根据云消息设置goOnline()/ goOffline()?
任何基于自己的expiriences的帮助或建议欢迎!
更多推荐
所有评论(0)