Прослушивание документов Firestore всегда обновляет состояние, даже если не было внесено c изменений - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть следующая функция для прослушивания обновлений в режиме реального времени из 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()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...