Как отсоединить слушателя Firestore от моего действия vuex? - PullRequest
0 голосов
/ 29 августа 2018

Я использую Firestore для получения сохраненных данных в моем магазине Vuex. Я не совсем понимаю, как отсоединить слушателя, когда я, например, выйду из системы.

fetchExercises ({commit, getters}) {
  const db = firebase.firestore()
  const exercises = db.collection('exercises').where('userId', '==', getters.user.uid)

  // Getting Real time feeds
  exercises.onSnapshot(querySnapshot => {
    commit('setLoading', true)
    let source = querySnapshot.metadata.hasPendingWrites ? 'Local' : 'Server'

    console.log(`Source ${source}`)
    if (querySnapshot) {
      querySnapshot.forEach(doc => {
        commit('watchExercises', {
          title: doc.data().title,
          language: doc.data().language,
          translated: doc.data().translated,
          lastOpen: doc.data().lastOpen,
          dueDate: doc.data().dueDate,
          uid: doc.data().uid,
          userId: doc.data().userId,
          words: doc.data().words,
          shared: false
        })
        const exercise = {
          title: doc.data().title,
          uid: doc.data().uid,
          lastOpen: doc.data().lastOpen,
          language: doc.data().language,
          translated: doc.data().translated,
          dueDate: doc.data().dueDate,
          words: doc.data().words,
          shared: false
        }
        commit('updateExercises', exercise)
      })
    }
    if (querySnapshot.size === getters.loadedExercises.length) {
      commit('setLoading', false)
    }
  })
}

Это действие, которое извлекает данные, так что теперь мне интересно, как бы я отключил слушателя в другом действии? как действие выхода.

1 Ответ

0 голосов
/ 29 августа 2018
this.unsubscribe = this.exercises.onSnapshot(
    // your code
);

// Stop listening to changes
// Call this when a user is signed out for example

this.unsubscribe();

Подробнее об этом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...