我是 Firebase 的新手,我正在研究它是否符合我們的需求。除了離線資料庫外,它擁有我們需要的一切。好吧,我知道它能夠在用戶離線時快取更改,然后在用戶在線時同步它們,但這不是我要說的。
由于 firebase 的成本很高,我們希望我們的免費用戶只能離線使用該應用程式,并且無論用戶是否在線,資料都不應該同步到云端,并且只對訂閱用戶使用同步。
我們尚未考慮的一種解決方案是使用 SQLite 之類的離線資料庫,并且:
a) 當用戶訂閱時,將資料移動到 firebase
b) 如果用戶取消訂閱,則將資料移動到 SQLite
但是這個解決方案需要2個完全不同的編碼相同的東西。用于從 SQLite 遷移到 firebase 以及從 firebase 遷移到 SQLite 的額外代碼。是否有更好的解決方案來使用 Firestore 資料庫并具有完整的離線資料庫功能?
uj5u.com熱心網友回復:
在我看來,你的解決方案是可行的。但是有些情況你應該考慮。
a) 當用戶訂閱時,將資料移動到 Firebase。
據我了解,這是其中之一。在這種情況下,當用戶訂閱時,您應該始終考慮鎖定本地 SQLite 資料庫以進行寫入,直到所有資料都寫入 Firebase 服務器。操作完成后,您才應該允許用戶在云中寫入資料。
為什么需要這個?始終擁有一致的資料。
b) 如果用戶取消訂閱,則將資料移動到 SQLite。
如果用戶取消訂閱,您可以考慮使用與上述幾乎相同的機制。但首先,您必須清除本地資料庫,因為它會包含過時的資料,然后將 Firestore 中的所有資料直接復制到 SQLite 資料庫中。
編輯: 您還可以考慮從本地快取復制資料,而不是從 Firebase 服務器獲取資料。這意味著沒有成本。
但是這個解決方案需要2個完全不同的編碼相同的東西。
沒錯,但是由于離線資料庫和在線資料庫共享相同的欄位,因此操作可能沒有想象的那么復雜。只需在用戶物件內的屬性上附加一個實時偵聽器,很可能稱為“訂閱”,它可以保存真/假值,并在更改時采取相應的操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/405622.html
標籤:
