我们在我们的服务器上生成一个sqlite数据库,我们在API上提供了下载.每次数据库更改时,用户必须重新下载Complete sqlite数据库(目前为50MB,并且时间不断增加).
我们尝试改进Update-Method,用户只需要下载Difference-sql文件,但有一些问题(性能,损坏的数据库等).
现在Google发布了Firebase,我认为现在是使用Firebase系统来替换sqlite-System的好时机.
但我有一些想法:
>我可以下载整个Firebase数据库用于脱机使用(不在应用缓存中,在持久存储中)?
>我可以跟踪脱机同步的进度,如果他想现在或以后同步,给用户选项?
>我可以限制同步到WIFI吗?
>我可以提供一个捆绑数据库 – 安装App后我可以已经离线查询了Firebase数据?
我想要的是:在我的应用程序中使用Firebase仅同步数据库 – 但是要离线执行所有操作.如果Firebase不是设计用来使用这个,什么是好的选择?
然后我有另一个关于Firebase的主要问题:
> JSON存储是伟大的 – 但是这样我们不关心一个独特的结构,我们必须注意这一点插入总是正确的数据集?
解决方法
Can I download the entire Firebase Database for Offline Usage (Not in
an App-Cache,in a persistent Storage)?
是的,您可以通过将磁盘持久性设置为true来执行此操作.您只需要引用数据库中的最高级别,firebase将返回所有子节点.
https://firebase.google.com/docs/database/android/offline-capabilities
Can I track the Progress of the Offline Sync and give the User the
option if he want’s to sync now or later?
我从来没有试图显示实际的进展,但是当您从firebase中检索数据时,始终会在成功检索数据时调用onDataChange方法.
https://firebase.google.com/docs/database/android/retrieve-data#read_data_once
Can I restrict the Sync to WIFI only?
我在Firebase文档中没有看到这个选项,但我不相信这将非常难以实现
Can I deliver a Bundle Database – that after installing the App I can
already query offline-Firebase Data?
一旦应用程序安装,您就需要从Firebase中获取数据.当您的应用程序首次运行时,您也可以尝试在没有任何网络的情况下写入Firebase数据库,然后此数据可能在本地可用,但是您需要小心,因为当用户获取网络连接时,此数据可能会覆盖Firebase数据库中的数据.
How do I cache Firebase data for offline usage?