我在我的vuex商店中有以下设置:我的用户使用Firebase身份验证进行登录。登录后,firebase.auth().onAuthStateChanged
被调用,user
被设置为state.user
,但也保存在Firebase数据库中。当我添加我的代码的最后一部分(database.ref...
)时,我的控制台爆炸出错。但是,这些错误与Firebase无关,但与Vuex无关。Vuex和Firebase商店状态错误
错误是以下(X80):
[Vue warn]: Error in callback for watcher "function() { return this._data.$$state }":
Error: [vuex] Do not mutate vuex store state outside mutation handlers.
我的代码仍然有效,但在开发过程中,我不希望看到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
})
}
}
}
没有办法。同样的错误仍然发生。 – samiheikki
是'database.ref'的异步调用? – thanksd
是的,它是异步 – samiheikki