问题描述
如果用户尝试使用现有电子邮件创建帐户,则呼叫firebase.auth().createuserWithEmailAndPassword(email,password)
会导致"QUOTA_EXCEEDED : Exceeded quota for email lookup."
。
这是我的代码(使用"firebase": "7.6.2"
):
firebase.auth().createuserWithEmailAndPassword(email,password)
.then(result => {
result.user.sendEmailVerification(actionCodeSettings);
})
.catch(error => {
console.log(error);
// Handling error for user
});
"error": {
"code": 400,"message": "EMAIL_EXISTS","errors": [
{
"message": "EMAIL_EXISTS","domain": "global","reason": "invalid"
}
]
}
}
尽管如此,firebase正在调用createAuthUri
来创建IdP用来验证用户身份的URI。此调用将循环触发,直到运行到配额中为止。
有人有同样的问题吗?我该如何取消createAuthUri
的呼叫,以避免超出配额?
解决方法
解决了问题!不是我所预期的firebase.auth().createUserWithEmailAndPassword(email,password)
引起的。触发了一个组件以针对错误提供警报(未在代码段中显示)。在此组件内部,存在每次重新渲染该组件时调用firebase引起的副作用。不幸的是,该组件导致每次调用Firebase本身时都会重新呈现。