У меня есть следующая функция для прослушивания обновлений в режиме реального времени из Firestore и обновления состояния. Я хочу, чтобы он обновлял состояние только при наличии изменений (по соображениям производительности), но он продолжает обновлять состояние, даже если
let unsubscribeClients
export function getClients(uid, state) {
unsubscribeClients = firebaseDB.collection("clients").where("owner", "==", uid)
.onSnapshot(function(querySnapshot) {
const changes = querySnapshot.docChanges()
if (changes.length > 0) {
console.log('hi') // only outputs once (expected behavior)
var clients = {}
querySnapshot.forEach(function(doc) {
clients[doc.id] = doc.data()
})
state.setState({
clients: clients
}) // keeps updating state (unwanted behavior)
}
})
}
export function stopListeningToClients() {
// Stop listening to changes
unsubscribeClients()
}