gpt4 book ai didi

javascript - firestore 取消订阅完成的事件

转载 作者:行者123 更新时间:2023-11-30 10:59:49 28 4
gpt4 key购买 nike

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

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

你有没有更好的方法来避免这个问题,我的意思是有没有在取消订阅完成后触发的事件(我想长时间避免 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
});

如果在此之后您仍然收到安全错误,您可能仍然为用户附加了另一个监听器。如果情况并非如此,请编辑您的问题以包含 minimal, complete/standalone code that we can run to reproduce the problem .或者,您(也)可以在像 jsbin 这样的站点上设置问题的最小重现。

关于javascript - firestore 取消订阅完成的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58305550/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com