我在我的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