gpt4 book ai didi

android - Firebase 数据库离线写入

转载 作者:搜寻专家 更新时间:2023-10-30 22:32:49 24 4
gpt4 key购买 nike

在我的 Android 应用程序中,我必须保留现有的 SQLite 数据库,但为了将元素(待办事项列表中的任务)同步到多个设备,我决定使用 Firebase 数据库。

所以我没有启用 Firebase 数据库离线模式,因为我必须为此使用 SQLite(这是一个大学项目)。

所以我为写入做的是,每当从本地 SQLite 数据库中添加或删除某些数据时,也会对 Firebase 数据库进行更改。

如果用户连接到 Internet,或者即使用户离线添加任务然后在使用应用程序时变为在线,所有这一切都按预期工作。

但如果用户离线添加任务,然后关闭应用程序,然后在另一个应用程序中变为在线,即使用户再次打开我的应用程序,更改也不会推送到数据库。

有什么想法吗?

谢谢。

最佳答案

由于您没有启用 Firebase 数据库离线模式,您的应用程序尝试推送的所有数据都不会保存在持久性存储中,只会保存在内存中。这就是为什么在应用程序重启后所有这些数据都不会推送到 Firebase 的原因。

因此,您需要在应用程序启动时使用一些同步算法,将数据从本地数据库推送到 firebase(反之亦然)。

例如,您可以在本地和 firebase 端使用时间戳标记 (System.currentTimeMillis()),它始终应在任何数据库更改时更新。

然后在应用程序启动时你可以检查这个标记:

  • 如果本地标记大于远程标记 - 这意味着远程数据库已过时。所以只需复制所有本地 sql 数据库数据到 Firebase。

  • 如果远程标记大于本地标记 - 只需清理本地数据库并从 firebase 下载所有数据。

  • 如果两个标记相等 - 这意味着一切都是最新的,什么都不做。

希望这有帮助:)

关于android - Firebase 数据库离线写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41484190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com