admin管理员组文章数量:1391951
I'm trying to use useEffect to stop listening to Firebase Firestore collection changes.
I can get Firebase data, But I can't access this unsubscribe();
How can i fix this?
let unsbscribe;
async function getFirebaseData() {
unsbscribe = db.collection('room')
.where('joinUser', 'array-contains-any', [10])
.onSnapshot((res) => {
// do something...
});
useEffect(() => {
getFirebaseData();
return () => {
unsbscribe(); // throws an error that unsubscribe is not a function.
};
}, []);
I'm trying to use useEffect to stop listening to Firebase Firestore collection changes.
I can get Firebase data, But I can't access this unsubscribe();
How can i fix this?
let unsbscribe;
async function getFirebaseData() {
unsbscribe = db.collection('room')
.where('joinUser', 'array-contains-any', [10])
.onSnapshot((res) => {
// do something...
});
useEffect(() => {
getFirebaseData();
return () => {
unsbscribe(); // throws an error that unsubscribe is not a function.
};
}, []);
Share
Improve this question
edited Jan 25, 2022 at 9:24
Shahnawaz Hossan
2,7202 gold badges15 silver badges24 bronze badges
asked Jul 16, 2020 at 12:03
RickRick
891 silver badge7 bronze badges
2 Answers
Reset to default 4You can unsubscribe it from inside the useEffect
hook in this way:
useEffect(() => {
const unsubscribe = db.collection('room')
.where('joinUser', 'array-contains-any', [10])
.onSnapshot((res) => {
// do something...
});
return () => unsubscribe()
}, []);
Try to return just unsubscribe
let unsbscribe;
async function getFirebaseData() {
unsbscribe = db.collection('room')
.where('joinUser', 'array-contains-any', [10])
.onSnapshot((res) => {
// do something...
});
useEffect(() => {
getFirebaseData();
return unsubscribe
}, []);
本文标签: javascriptFirestore unsubscribe from useEffectStack Overflow
版权声明:本文标题:javascript - Firestore unsubscribe from useEffect - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744717937a2621518.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论