如何在vue.js组件中取消订阅()firebase集合
在使用firebase动态检索数据的vuejs组件中,我想在退出该组件时取消订阅 firebase文档中指出必须使用如何在vue.js组件中取消订阅()firebase集合,firebase,vue.js,Firebase,Vue.js,在使用firebase动态检索数据的vuejs组件中,我想在退出该组件时取消订阅 firebase文档中指出必须使用unsubscribe()函数;停止收听收藏 不幸的是,此函数不能直接使用,因为它被声明为未定义 以下是组件代码: <script> import db from "../../firebase/init"; let subscribe; export default { // ... beforeDestroy
unsubscribe()
函数;停止收听收藏
不幸的是,此函数不能直接使用,因为它被声明为未定义
以下是组件代码:
<script>
import db from "../../firebase/init";
let subscribe;
export default {
// ...
beforeDestroy() {
// Don't work form me !!!
unsubscribe();
},
methods: {
async getMyCollection() {
try {
subscribe = await db.collection("myCollection");
subscribe.onSnapshot(snapshot => {
snapshot.docChanges().forEach(change => {
// Do something
}
});
});
} catch (error) {
console.log(error);
}
}
}
</script>
从“../../firebase/init”导入数据库;
让我们订阅;
导出默认值{
// ...
在…之前{
//不要跟我一起工作!!!
取消订阅();
},
方法:{
异步getMyCollection(){
试一试{
subscribe=wait db.collection(“myCollection”);
subscribe.onSnapshot(快照=>{
snapshot.docChanges().forEach(更改=>{
//做点什么
}
});
});
}捕获(错误){
console.log(错误);
}
}
}
感谢您的帮助因为您还没有在任何地方定义
取消订阅
。请检查下面的代码
<script>
import db from "../../firebase/init";
let unsubscribe;
export default {
// ...
beforeDestroy() {
unsubscribe();
},
methods: {
async getMyCollection() {
try {
unsubscribe = await db.collection("myCollection")
.onSnapshot(snapshot => {
snapshot.docChanges().forEach(change => {
// Do something
}
});
});
} catch (error) {
console.log(error);
}
}
}
</script>
从“../../firebase/init”导入数据库;
让我们退订;
导出默认值{
// ...
在…之前{
取消订阅();
},
方法:{
异步getMyCollection(){
试一试{
取消订阅=等待数据库收集(“myCollection”)
.onSnapshot(快照=>{
snapshot.docChanges().forEach(更改=>{
//做点什么
}
});
});
}捕获(错误){
console.log(错误);
}
}
}
谢谢,但这对我不起作用。unsubscribe()
函数触发错误:unsubscribe不是一个函数