gpt4 book ai didi

javascript - 删除/关闭 Firebase 监听器

转载 作者:搜寻专家 更新时间:2023-10-30 22:58:08 25 4
gpt4 key购买 nike

我有监听 Firebase 事件的 Vue 组件,我在安装它们时创建了 Firebase 引用/监听器。但是当用户离开该页面时,我想删除 beforeDestroy() 生命周期 Hook 中的所有监听器。这是删除 Firebase 引用/监听器的“正确”方法吗?

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()
})
})
},

最佳答案

您始终可以调用,但如果您在同一路径上有多个监听器,它会变得更加棘手。

ref.off("value")

监听器返回对该监听器的引用,所以我就是这样做的。

let listener = ref.on("value", function(snapshot){
//do something
}

ref.off("value", listener)

关于javascript - 删除/关闭 Firebase 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51902759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com