【问题标题】:Firebase API doesn't respond with common error codes using Axios on react nativeFirebase API 不使用 Axios 响应本机反应的常见错误代码
【发布时间】:2018-07-22 08:04:39
【问题描述】:

我正在使用 Axios 和 Redux 处理 Firebase Auth REST API 和 React Native。

我有一个使用电子邮件和密码登录的操作,这是我的代码:

export function signIn(data){
    const request = axios({
        method:'POST',
        url:SIGNIN, 
        data:{
            email: data.email,
            password: data.password,
            returnSecureToken:true 
        },
        headers:{
            "Content-Type":"application/json"
        }
        }).then(response => {
            return response.data
        }).catch( e => {
            console.log(e)
            return false
        });

    return {
        type: SIGN_IN_USER,
        payload: request
    }
}

如果我正确插入带有电子邮件和密码的凭据,一切都很好。

但是,如果我插入一封包含错误的电子邮件,我希望得到文档中示例所示的答案:

EMAIL_NOT_FOUND:没有与此标识符对应的用户记录。该用户可能已被删除。

INVALID_PASSWORD:密码无效或用户没有密码。

USER_DISABLED:用户帐户已被管理员禁用。

但是如果我产生一些错误,我只会收到这个答案:

错误:请求失败,状态码为 400

与文档中指示的答案完全不同。

有人可以帮助我吗?谢谢!!

【问题讨论】:

  • 400 表示您可能发送格式错误的数据的错误请求。或者,也许您正在使用旧库并且 firebase 更新了 API。只是猜测。
  • @jcubic 但是当我使用正确的电子邮件和密码提出请求时,一切都很好。当使用错误的凭据输入请求时,我预计会出现一些错误,但它总是告诉我代码 400。我想认为,如果在输入正确的凭据时请求错误,我就不必正确访问它。
  • 哦,那你需要处理 400 错误,如果它使用正确的密码并返回 400 或错误的密码,你无能为力。

标签: javascript firebase react-native react-redux axios


【解决方案1】:

解决办法:

console.log(error.response.data.error.message)

【讨论】:

  • 我爱你!终于找到解决办法了
  • 天哪,为什么这不明显,这应该添加到 firebase 文档中
【解决方案2】:

我终于有了解决方案,只需检查您如何导入 firebaseConfig.js 并在其中初始化您的 firebase。

大多数情况下我们会导出默认的 firebaseConfig 并将其作为对象导入:

import { firebaseConfig } from './src/config/FirebaseConfig'; // Incorrect
import FirebaseConfig from './src/config/FirebaseConfig'; // Correct Order

【讨论】:

  • 那是不是用 axios 代替呢?
猜你喜欢
  • 2022-01-21
  • 2021-11-16
  • 2021-05-19
  • 1970-01-01
  • 2016-10-25
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多