繁体   English   中英

firestore 取消订阅完成事件

[英]firestore unsubscribe finished event

我订阅了firestore中的一个文档,在我注销之前我想取消订阅,否则它会抛出一个错误,因为我正在使用firestore安全规则并且当用户注销并且我没有取消订阅时,访问将被拒绝并且它会抛出错误。

我尝试了下面的代码但仍然无法正常工作我仍然从firestore安全规则中得到错误,所以我引入了setInterval但它花费了太多时间(在我的测试中我一直到5秒才能避免错误)

你有没有更好的方法来避免这个问题,我的意思是一旦取消订阅就会触发一个事件(我想长时间避免 setInterval)?

var unsubscribe = db.collection('notifications').doc('docID').onSnapshot(
          function(doc) {
            // Do things
          })

function logout () {
  unsubscribe(
    setTimeout(function() {
      firebase.auth().signOut().then(() => {
        // Redirect to home page
      });
    }, 600)
  )
};

据我所知,退订是同步的。 所以当unsubscribe()完成后,你可以退出:

unsubscribe();
firebase.auth().signOut().then(() => {
    // Redirect to home page
});

如果在此之后您仍然遇到安全错误,您可能仍然为用户附加了另一个侦听器。 如果情况似乎并非如此,请编辑您的问题以包含我们可以运行以重现问题的最小、完整/独立代码 或者,您可以(也)在 jsbin 之类的网站上设置问题的最小再现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM