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

bro*_*did 14 sqlite ios firebase firebase-realtime-database

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

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

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

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

但我有一些想法:

  • 我可以下载整个Firebase数据库以进行离线使用(不在App-Cache中,在持久存储中)吗?
  • 我可以跟踪离线同步的进度,如果他想现在或以后同步,可以给用户选项吗?
  • 我可以仅限制同步到WIFI吗?
  • 我可以提供捆绑数据库 - 安装应用程序后我可以查询离线 - Firebase数据吗?

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

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

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

Ril*_*ald 5

我可以下载整个Firebase数据库以供脱机使用(不在应用程序缓存中,还是在永久性存储中)?

是的,您可以通过将磁盘持久性设置为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数据了吗?

安装该应用后,您将需要从Firebase抓取数据。从理论上讲,您也可以在首次运行该应用程序时尝试在没有任何网络的情况下写入Firebase数据库,然后此数据可以在本地使用,但是您需要小心,因为当用户获得网络连接时,该数据可能会被覆盖Firebase数据库中的数据。 如何缓存Firebase数据以供脱机使用?