删除 firestore 上的实时监听器

Remove a realtime listener on firestore

我是 firebase 的新手,不太了解如何分离实时侦听器。我已经阅读了官方文档,但仍然不明白该怎么做。如果有人能为我简化它并创建一个函数来启动侦听器和另一个函数来停止它,那就太棒了。

要启动侦听器,我只需调用 start()

function start(){
  firebase.firestore().doc("users/x").onSnapshot(function(doc) {
   console.log(doc.data());
  });
}

但是为了停止侦听器,我尝试调用函数并在其中注明,但是它不起作用

//Doesn't work
function stop(){
 firebase.firestore().doc("users/x").onSnapshot(function(doc) {
   //Not putting anything in here
  });
 }

以下应该可以解决问题:

var fbListener = null;

function start(){
  fbListener = firebase.firestore().doc("users/x").onSnapshot(function(doc) {
   console.log(doc.data());
  });
}

function stop(){
  fbListener();
}

查看文档 here and hereonSnapshot returns“一个取消订阅函数,可以调用它来取消快照侦听器”。