【发布时间】:2019-01-24 22:21:19
【问题描述】:
我有 Vue 组件正在侦听 Firebase 事件,并在安装它们时创建 Firebase 引用/侦听器。但是当用户离开该页面时,我想删除 beforeDestroy() 生命周期挂钩中的所有侦听器。这是删除 Firebase ref/listeners 的“正确”方式吗?
getFirebaseRef(path){
return firebase.database().ref(path)
},
beforeDestroy(){
// get firebase ref
let fbPath = `/projects/proj_${this.currentLessonId}/components/${this.component.id}`
this.getFirebaseRef(fbPath)
.then((ref) => {
// remove listener
ref.off("value", (snap) => {
})
ref.off("child_added", (snap) => {
})
ref.off("child_removed", (snap) => {
})
})
},
mounted(){
// get firebase ref
let fbPath = `/projects/proj_${this.currentLessonId}/components/${this.component.id}`
this.getFirebaseRef(fbPath)
.then((ref) => {
// add listener
ref.on("value", (snap) => {
doSomething1()
})
ref.on("child_added", (snap) => {
doSomething2()
})
ref.on("child_removed", (snap) => {
doSomething3()
})
})
},
【问题讨论】:
标签: javascript firebase firebase-realtime-database vue.js