我使用firebase-js-sdk(在Vue PWA中)侦听Firestore中的实时更新。
要在后台运行应用程序后还原它,我使用“ vuex-persist”作为应用程序状态。除了应用程序状态外,我还需要通过在具有相同参数的相同集合上调用.onSnapshot来重新建立实时查询。
我想知道firebase-js-sdk是否能够重用实时查询,该查询是在应用程序进入后台之前进行的。否则,每当用户切换到后台并返回时,我都会被收取费用。
谢谢您的帮助,托马斯
答案 0 :(得分:1)
解决方案:问题不在于如何使恢复(包括实时侦听器的恢复)在技术上可行。我主要对如何避免每次这样的实时侦听器还原发生收费的事情。
根据这两个答案:
如果满足以下先决条件,则不会向我收费:
答案 1 :(得分:0)
您应该在main.js或基本上在应用程序启动或进入前台时始终启动的页面中初始化Firebase,以便即使再次进入前台时侦听器已分离,Firebase也会启动,因此可以创建新的侦听器。
因此,在main.js中,您将得到类似的内容:
import Firebase from 'firebase'
let config = {
apiKey: "...",
authDomain: "...",
databaseURL: "...",
storageBucket: "...",
messagingSenderId: "..."
};
let app = Firebase.initializeApp(config)
let db = app.database()
let booksRef = db.ref('books')
//....etc///
如果您正确设置并在每次加载页面时都运行的方法中设置了侦听器,则您总会有一个侦听器。只要确保避免创建多个侦听器即可。