如何在vue.js组件中取消订阅()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

在使用firebase动态检索数据的vuejs组件中,我想在退出该组件时取消订阅

firebase文档中指出必须使用
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不是一个函数