超过最大调用堆栈大小(在Nuxt&x2B;Firebase项目中)

超过最大调用堆栈大小(在Nuxt&x2B;Firebase项目中),firebase,vue.js,nuxt.js,Firebase,Vue.js,Nuxt.js,我目前正在Nuxt和Firebase中创建身份验证功能 登录和注销过程本身是可以完成的,标题显示也会相应地改变,但当我按下登录按钮时,控制台中出现了一个错误 错误内容(在控制台中) store/auth.js↓ export const strict = false export const state = () => ({ user: null }) export const mutations = { SET_USER (state, payload) { stat

我目前正在Nuxt和Firebase中创建身份验证功能

登录和注销过程本身是可以完成的,标题显示也会相应地改变,但当我按下登录按钮时,控制台中出现了一个错误

错误内容(在控制台中) store/auth.js↓

export const strict = false

export const state = () => ({
  user: null
})

export const mutations = {
  SET_USER (state, payload) {
    state.user = payload
  }
}

export const actions = {
  setUser ({ commit }, user) {
    commit('SET_USER',user)
  }
}

export const getters = {
  isAuthenticated (state) {
    return !!state.user
  }
}
default.vue↓

mounted () {
    auth.onAuthStateChanged(user => {
      const { uid, displayName, photoURL} = user
      if (user) {
        this.$store.dispatch('auth/setUser', { uid, displayName, photoURL})
      } else {
        this.$store.dispatch('auth/setUser', null)
      }
    })
  }

如果我缺少任何信息,请告诉我我认为问题出在以下代码行:

export const mutations = {
  SET_USER (state, payload) {
    state.user = payload
  }
}

export const actions = {
  setUser ({ commit }, user) {
    commit('SET_USER',user)
  }
}

这个突变和动作之间有一个循环

这个错误通常来自infinte递归。如果您可以提供一个带有复制的JSFIDLE或codepen,我可以更深入地了解auth变量是如何定义的?谢谢您的评论。这是auth变量const auth=firebase.auth(),谢谢!!我已经考虑过了,但我不知道如何修复它。请帮帮我。
mounted () {
    auth.onAuthStateChanged(user => {
      const { uid, displayName, photoURL} = user
      if (user) {
        this.$store.dispatch('auth/setUser', { uid, displayName, photoURL})
      } else {
        this.$store.dispatch('auth/setUser', null)
      }
    })
  }
export const mutations = {
  SET_USER (state, payload) {
    state.user = payload
  }
}

export const actions = {
  setUser ({ commit }, user) {
    commit('SET_USER',user)
  }
}