我正在尝试使用useEffect停止收听Firebase Firestore集合更改。
我可以获取Firebase数据,但无法访问此unsubscribe();
我该如何解决?
if (typeof(Event) === 'function') {
// modern browsers
window.dispatchEvent(new Event('resize'));
} else {
// for IE and other old browsers
// causes deprecation warning on modern browsers
var evt = window.document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(evt);
}
答案 0 :(得分:0)
您可以通过以下方式从useEffect
钩子内部取消订阅:
useEffect(() => {
const unsubscribe = db.collection('room')
.where('joinUser', 'array-contains-any', [10])
.onSnapshot((res) => {
// do something...
});
return () => unsubscribe()
}, []);
答案 1 :(得分:0)
尝试退订退回
let unsbscribe;
async function getFirebaseData() {
unsbscribe = db.collection('room')
.where('joinUser', 'array-contains-any', [10])
.onSnapshot((res) => {
// do something...
});
useEffect(() => {
getFirebaseData();
return unsubscribe
}, []);