小编sam*_*kki的帖子

Vuex和Firebase存储状态错误

我在vuex商店中进行了以下设置:我的用户使用Firebase身份验证登录.登录后,将firebase.auth().onAuthStateChanged被调用并user设置为,state.user但也会保存在Firebase数据库中.当我添加代码的最后一部分(database.ref...)时,我的控制台会出现错误.但是,错误与Firebase无关,而与Vuex无关.

错误如下(x80):

[Vue警告]:观察者回调错误"function(){return this._data.$$ state}":

错误:[vuex]不要在变异处理程序之外改变vuex存储状态.

我的代码仍然有效,但在开发过程中,我不希望在用户登录时看到80个错误.我怎样才能摆脱这些错误?

// actions
const actions = {
  startListeningToAuth ({ commit }) {
    firebase.auth().onAuthStateChanged((user) => {
      commit(types.SET_USER, { user })
    })
  }
}

// mutations
const mutations = {
  [types.SET_USER] (state, { user }) {
    state.user = user

    if (user) {
      database.ref('users/' + user.uid).set({
        name: user.displayName,
        email: user.email,
        photo_url: user.photoURL
      })
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript firebase vue.js firebase-realtime-database vuex

5
推荐指数
2
解决办法
1310
查看次数