android保持数据库,android – 保持Firebase实时数据库中的数据始终保持同步
我正在重新使用我的應(yīng)用程序,它通過(guò)從網(wǎng)站獲取原始數(shù)據(jù)來(lái)更新它的內(nèi)部SQLite數(shù)據(jù)庫(kù),而不是官方API.
由于這非常容易出錯(cuò),我想將數(shù)據(jù)處理從客戶端移到后端服務(wù)器中.
我們的想法是每天多次在服務(wù)器上運(yùn)行一個(gè)腳本 – 類似于之前的客戶端行為 – 并將數(shù)據(jù)存儲(chǔ)在Firebase實(shí)時(shí)數(shù)據(jù)庫(kù)中.然后,所有客戶端不再需要自己處理數(shù)據(jù),而是從Firebase數(shù)據(jù)庫(kù)請(qǐng)求解析的數(shù)據(jù).
我只是想知道保持?jǐn)?shù)據(jù)同步的最佳方法是什么.
我提出了兩個(gè)想法,但由于我對(duì)Firebase不太熟悉,我不知道什么是更好的.
首先,我可以想象通過(guò)在某些節(jié)點(diǎn)上使用keepSynced()和setPersistenceEnabled()來(lái)保持客戶端上的數(shù)據(jù)同步.
但我不確定這是否會(huì)在應(yīng)用程序處于后臺(tái)時(shí)保持?jǐn)?shù)據(jù)最新.我也擔(dān)心這種方法的電池和網(wǎng)絡(luò)使用情況.
第三點(diǎn)是同時(shí)連接的數(shù)量,我問(wèn)這種方法每個(gè)客戶端都會(huì)一直連接,對(duì)吧?
第二種方法是使用FCM在其感興趣的節(jié)點(diǎn)之一發(fā)生變化時(shí)通知客戶端,例如,使用Firebase云功能來(lái)偵聽(tīng)事件并觸發(fā)消息.
然后客戶端將goOnline()再次與數(shù)據(jù)庫(kù)和goOffline()同步.這將避免大量連接以及減少電池和網(wǎng)絡(luò)使用.
但我不確定如何在離線時(shí)保留設(shè)備上的所有數(shù)據(jù)?
我不想使用SQLite數(shù)據(jù)庫(kù)來(lái)保存設(shè)備上的數(shù)據(jù).
setPersistenceEnabled()是否足以在設(shè)備上保留特定數(shù)量的數(shù)據(jù)庫(kù)注釋?
或者兩者兼而有之?在所需節(jié)點(diǎn)上設(shè)置keepSynced()和setPersistenceEnabled(),并根據(jù)云消息設(shè)置goOnline()/ goOffline()?
任何基于自己的expiriences的幫助或建議歡迎!
總結(jié)
以上是生活随笔為你收集整理的android保持数据库,android – 保持Firebase实时数据库中的数据始终保持同步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 股票网下申购条件
- 下一篇: Navicat for MySQL 连接