【发布时间】:2019-02-01 06:07:11
【问题描述】:
我使用 firebase-js-sdk(在 Vue PWA 中)来监听来自 Firestore 的实时更新。
要在后台恢复应用程序,我使用“vuex-persist”作为应用程序状态。除了应用程序状态之外,我还需要通过在具有相同参数的同一集合上调用 .onSnapshot 来重新建立实时查询。
我想知道 firebase-js-sdk 是否能够重用实时查询,这是在应用程序进入后台之前请求的。否则每次用户切换到后台和返回时都会向我收费。
感谢您的帮助,托马斯
【问题讨论】:
-
Firebase 查询需要“不监听”,这是它停止监听的唯一方法,除非整个进程(应用程序)被杀死。因此,如果您尚未删除侦听器并且应用程序仍然存在,那么它们应该正在侦听。在您的应用再次处于前台后,您始终可以通过更改数据库中的某些内容来确认这一点,以查看您是否观察到该更改。
-
更具体一点。如果应用程序在 ios 上以“apple-mobile-web-app-capable 模式”运行(为了表现得像一个带有主屏幕图标和全屏的原生应用程序),那么切换到后台并返回到前台就像按 F5 一样桌面浏览器。它重新加载应用程序,所有内容都需要恢复,实时监听器也是如此。这意味着:观察 db 更改(如您提到的)是不可能的,因为该应用程序不再有 firestore 引用。
标签: firebase vue.js google-cloud-firestore vuex