Я пытаюсь отписаться от прослушивателя изменений в Firestore, но не могу заставить его работать.
Согласно документации Firebase вам нужно вызвать метод onSnapshot (), чтобы прекратить прослушивание. Чего мне не хватает?
https://firebase.google.com/docs/firestore/query-data/listen
Это ловушка, которая вызывает создателей действий подписки / отмены подписки:
useEffect(() => {
subscribe()
return () => {
unsubscribe()
}
}, [])
А вот создатели действий подписки / отказа от подписки:
export const subscribe = () => {
return (dispatch) => {
const items = db.collection('items')
items.onSnapshot((snapshot) => {
const data = snapshot.docs.map((item) => item.data())
dispatch({ type: 'DO_SOMETHING', payload: data })
})
}
}
export const unsubscribe = () => {
const items = db.collection('items')
const unsubscribe = () => items.onSnapshot(() => {})
unsubscribe()
}
Спасибо!