firebase - 超出最大调用堆栈大小(在 Nuxt + Firebase 项目中)
问题描述
我目前正在 Nuxt 和 Firebase 中创建身份验证功能。
登录和注销过程本身可以完成,并且标题显示会相应更改,但是当我按下登录按钮时控制台出现错误。
错误内容(在控制台中)
Uncaught RangeError: Maximum call stack size exceeded
at Function.keys (<anonymous>)
代码
Header.vue(这是包含登录按钮的页面。)↓</p>
googleLogin () {
const provider = new firebase.auth.GoogleAuthProvider()
auth.signInWithPopup(provider)
.then(res => {
this.dialogAuthVisible = false
this.$store.dispatch('auth/setUser',res.user)
}).catch(e => console.log(e))
}
store/auth.js↓</p>
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↓</p>
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)
}
}
这种突变和动作之间存在一个循环
推荐阅读
- css - 制作锁子甲背景主题
- c++ - jrtplib-3.11.1 为什么遍历所有fd而不是数据可读的fd?
- sql - 如何在 postgresql 中取消 SQL 查询“更新”
- ios - 如何在 iOS 中使用 Swift 运行命令行命令或任务?
- asp.net-mvc - 无法在 chrome/fire fox 中运行我的 MVC 应用程序:
- javascript - 如何使用烧瓶访问使用javascript添加到我的html页面的段落?
- excel - 仅将表格列中的可见单元格复制到Excel VBA中用逗号分隔的一列,循环
- wordpress - 为什么 Wordpress 在其他 DNS 中不起作用
- ruby-on-rails - 如何修复“致命:无法查找 https(端口 9418)(不知道这样的主机)
- python - 在 python 类中动态添加对算术魔术函数的支持