簡體   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