SQLite 和 Firebase 数据库之间的同步,当用户离线数据存储在 sqlite 和在线数据存储在 firebase 时

Posted

技术标签:

【中文标题】SQLite 和 Firebase 数据库之间的同步,当用户离线数据存储在 sqlite 和在线数据存储在 firebase 时【英文标题】:Synchronization between SQLite and Firebase database, when users are offline data stored in sqlite and when online data gets stored on firebase 【发布时间】:2018-06-29 08:17:56 【问题描述】:

在我的应用程序中,我有 SQLite 数据库。我想在我的用户的设备之间引入同步。 我想将我的本地 SQLite 数据库与云 Firebase 数据库结合起来。

我希望我的 sqlite 数据库在用户登录时存储在 firebase 数据库中,否则让它离线存储。登录时,对本地数据库的任何更改都应反映在 firebase 数据库上。此外,如果用户删除本地数据库,他/她可以从 firebase 数据库中检索它。我只想用firebase来同步本地数据库和firebase数据库。

但我不知道该怎么做。谁能帮我解决这个问题?我的应用在 android 中,以 java 作为后端。

【问题讨论】:

这似乎是多余的 - 这样做可能是有原因的,但 Firebase 提供离线持久性,那么当您可以使用 Firebase 来完成时,为什么还要维护两个完全不同的数据集呢?此外,Firebase 和 SQL 是不相关的,并且具有完全不同的存储机制,因此您必须添加(很多?)额外代码才能在它们之间进行转换。此外,没有直接的方法可以将您的 sqlite 数据库存储在 firebase 数据库中。也许您可以详细说明您的用例,以便我们更好地了解您为什么要这样做? 【参考方案1】:

您可以根据用户存储存在于 firebase db 中的数据,而不是将 sqlite db 存储到 firebase db。当用户执行任何操作时,将其存储在本地数据库(sqlite)以及 firebase 数据库中。这将帮助您在用户处于离线模式时显示数据。当用户退出时。删除本地 sqlite 数据库,如果用户已使用已在 firebase 数据库中存在数据的用户登录,则将其与本地数据库同步。

这将使您更容易在本地 sqlite db 和 firebase db 之间提供同步。

如果您提供多重登录,那么您可以实施 FCM 以在数据已更改时提供同步并相应地更新本地数据库。

谢谢你, 希望对你有帮助

【讨论】:

不确定这个答案是否有意义;为什么要将数据存储在两个单独的数据库中?由于 SQL 和 Firebase 完全不同,这将需要将整个代码库翻倍。你为什么不 a) 只将数据存储在 Firebase 中(两者都可以)或 b) 利用在线 SQL 服务或 c) 使用类似 Realm 的东西,它也可以。

以上是关于SQLite 和 Firebase 数据库之间的同步,当用户离线数据存储在 sqlite 和在线数据存储在 firebase 时的主要内容,如果未能解决你的问题,请参考以下文章

Firebase数据库存储到sqlite数据库中,其中一些属性保持不变

sqlite遇到database is locked问题的完美解决

sqlite遇到database is locked问题的完美解决

如何在mysql和sqlite之间同步数据?

使用 SQL/SQLite 工具箱 Visual Studio 2019 在 SQLite 数据库和 Xamarin.Android 项目之间建立连接

使用 SQLite API 将 API 输出 (JSON) 插入 SQLite