我已经编写了以下代码进行注册:
actions: {
signup({ commit, dispatch }, formData) {
axios
.post('accounts:signUp?key=XXXXXXXXXXXX', {
email: formData.email,
password: formData.password,
returnSecureToken: true
})
.then(res => {
commit('userData', {
token: res.data.idToken,
userId: res.data.localId
});
dispatch('storeUserInfo', formData);
console.log(res);
})
.catch(error => {
alert(error.code);
alert(error.message);
});
},
我的目标是显示由Firebase返回的确切错误,例如
EMAIL_NOT_FOUND:没有与此对应的用户记录 标识符。用户可能已被删除。 INVALID_PASSWORD: 密码无效或用户没有密码。 USER_DISABLED:该用户帐户已被管理员禁用
每次返回时都使用以下代码:Request failed with status code 400
在响应中,我可以看到类似以下消息:
{
"error": {
"code": 400,
"message": "EMAIL_NOT_FOUND",
"errors": [
{
"message": "EMAIL_NOT_FOUND",
"domain": "global",
"reason": "invalid"
}
]
}
}
答案 0 :(得分:1)
这样做
.catch(error => {
console.log(error.response.data.error.message);
});
您将能够获得错误消息,例如“电子邮件没有找到”。然后由您决定将其映射到文本消息(即“没有与此标识符对应的用户记录。该用户可能已被删除。”)。
有关更多详细信息,请参见有关错误处理的Axios文档:https://github.com/axios/axios#handling-errors
特别注意:您在问题中用作示例的错误消息与accounts:signUp
不对应,而与accounts:signInWithPassword
相对应