我有一个应用,主要功能是“离线使用”。
我们在服务器上生成SQLite-Database,我们在API上提供下载。每次数据库发生变化时,用户都必须重新下载Complete SQLite-Database(目前为50MB并且及时增长)。
我们尝试改进用户只需下载差异SQL文件的Update-Method,但存在一些问题(性能,损坏的数据库等)。
现在Google发布了Firebase,我认为现在是用Firebase系统替换SQLite-System的好时机。
但我有一些想法:
我想要的是:在我的应用中仅使用Firebase同步数据库 - 但是离线执行所有操作。如果Firebase不是为了使用它而设计的,那么有什么好的选择呢?
然后我还有一个关于Firebase的主要问题:
答案 0 :(得分:4)
我可以下载整个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文档中没有看到此选项,但我认为实施起来并不困难
我可以提供捆绑数据库 - 在安装App之后我可以 已经查询离线 - Firebase数据?
安装应用后,您需要立即从Firebase获取数据。理论上,当应用程序首次运行时,您也可以尝试在没有任何网络的情况下写入Firebase数据库,然后这些数据可以在本地使用,但是当用户获得网络连接时,您需要小心,然后此数据可能会覆盖Firebase数据库中的数据。 How do I cache Firebase data for offline usage?