在Firestore上删除实时侦听器

时间:2020-07-22 11:26:35

标签: javascript firebase google-cloud-firestore listener real-time-updates

我是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
  });
 }

1 个答案:

答案 0 :(得分:1)

以下应该可以解决问题:

var fbListener = null;

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

function stop(){
  fbListener();
}

看看文档herehereonSnapshot返回“可以取消快照侦听器的退订函数”。