ionic / cordova 中的 Firebase 离线功能

Firebase offline capabilities in ionic / cordova

是否有人在 Android/iOS 中使用 Firebase 实现了具有完整离线功能的本机应用程序?

这可以在 Cordova/Ionic 中使用使用本机 Firebase SDK 的插件来完成吗?

我们正在构建一个在下载和首次启动时连接的应用程序,但随后我们必须假设有一段时间没有更多的互联网连接,并且数据库中的所有内容都必须离线可用。 Firebase 是否适合此要求,还是我们必须使用 CouchDB/PouchDB 或任何其他替代方案?

编辑:

这个问题涉及到 firebase 实时数据库。我相信使用新的 firebase Cloud Firestore 可以开箱即用地支持 ionic 的离线功能:

https://firebase.google.com/docs/database/rtdb-vs-firestore

实时数据库:仅对 iOS 和 Android 上的移动客户端提供离线支持。

Cloud Firestore:对 iOS、Android 和 Web 客户端的离线支持。

在他们的 JS SDK 中没有对 firebase 的真正 "offline" 支持。他们现在拥有的离线解决方案意味着如果您失去互联网连接,您将获得离线支持,如果连接中断 "online",数据将同步回来。但是,如果您在再次上线前关闭应用程序,您的 "offline" 数据将丢失。

这是一个 Cordova firebase 插件 https://www.npmjs.com/package/cordova-plugin-firebase 但它还不支持实时数据库。如果你愿意,你可以尝试扩展它。

如果您必须有离线支持,我建议您使用 SQLite 或您提到的 CouchDB/PouchDB。

您可以使用以下项目 - AngularFire2-offline

它的目的是为支持浏览器(支持服务工作者)启用离线数据访问 - List of browsers (and matching versions) that support service workers

它是这样工作的 -

  • 在线时,Firebase 数据存储在本地(随着数据更改,本地存储也会更新)
  • 离线时,如果可用则提供本地数据,写入存储在本地
  • 重新连接后,应用会使用新的 Firebase 数据进行更新,并将写入内容发送到 Firebase
  • 即使在线,也会首先使用可用的本地数据,从而加快加载速度