如何使用Vuejs显示Firebase返回的确切错误

时间:2019-12-30 09:59:10

标签: firebase vue.js

我已经编写了以下代码进行注册:

    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"
          }
        ]
      }
    }

1 个答案:

答案 0 :(得分:1)

这样做

    .catch(error => {
      console.log(error.response.data.error.message);
    });

您将能够获得错误消息,例如“电子邮件没有找到”。然后由您决定将其映射到文本消息(即“没有与此标识符对应的用户记录。该用户可能已被删除。”)。


有关更多详细信息,请参见有关错误处理的Axios文档:https://github.com/axios/axios#handling-errors


特别注意:您在问题中用作示例的错误消息与accounts:signUp不对应,而与accounts:signInWithPassword相对应