首页 文章

Firebase离线存储高级 - 手动同步和进度信息

提问于
浏览
13

我有一个应用程序,主要功能是“脱机使用” .

我们在服务器上生成SQLite-Database,我们在API上提供下载 . 每次数据库发生变化时,用户都必须重新下载Complete SQLite-Database(目前为50MB并且正在增长) .

我们尝试改进Update-Method,用户只需要下载Difference-SQL文件,但是存在一些问题(性能,损坏的数据库等) .

现在Google发布了Firebase,我认为现在是用Firebase系统替换SQLite-System的好时机 .

但我有一些想法:

  • 我可以下载整个Firebase数据库以进行离线使用(不在App-Cache中,在持久存储中)吗?

  • 我可以跟踪离线同步的进度,如果他想现在或以后同步,可以给用户选项吗?

  • 我可以仅限制同步到WIFI吗?

  • 我可以提供捆绑数据库 - 安装应用程序后我可以查询离线 - Firebase数据吗?

What I want is :在我的应用程序中使用Firebase仅用于同步数据库 - 但是脱机执行所有操作 . 如果Firebase不是为了使用它而设计的,那么有什么好的选择呢?

然后我有另一个关于Firebase的主要问题:

  • JSON存储很棒 - 但是这种方式我们不关心一个独特的结构,我们必须注意这个插入总是正确的数据集吗?

1 回答

  • 4

    我可以下载整个Firebase数据库以进行离线使用(不在App-Cache中,在持久存储中)吗?

    是的,您可以通过将磁盘持久性设置为true来执行此操作 . 您只需要引用数据库中的最高级别,firebase将返回所有子节点 . https://firebase.google.com/docs/database/android/offline-capabilities

    我可以跟踪离线同步的进度,如果他想现在或以后同步,可以给用户选项吗?

    我从未尝试过显示实际的进度,但是当您从firebase检索数据时,总是会在成功检索数据时调用onDataChange方法 . https://firebase.google.com/docs/database/android/retrieve-data#read_data_once

    我可以仅限制同步到WIFI吗?

    我在Firebase文档中没有看到此选项,但我不相信它实现起来会非常困难

    我可以提供捆绑数据库 - 安装应用程序后我可以查询离线 - Firebase数据吗?

    安装App后,您需要从Firebase获取数据 . 理论上,当应用程序首次运行时,您也可以尝试在没有任何网络的情况下写入Firebase数据库,然后这些数据可以在本地使用,但是当用户获得网络连接时,您需要小心,然后此数据可能会覆盖Firebase数据库中的数据 . How do I cache Firebase data for offline usage?

相关问题