Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Firebase:从带有Email和Password的登录返回捕获的错误_Reactjs_Firebase_Firebase Authentication - Fatal编程技术网

Reactjs Firebase:从带有Email和Password的登录返回捕获的错误

Reactjs Firebase:从带有Email和Password的登录返回捕获的错误,reactjs,firebase,firebase-authentication,Reactjs,Firebase,Firebase Authentication,我正在使用firebase和电子邮件+密码验证提供程序。正确的凭据案例按预期工作。我的问题是,若凭证错误,则会捕获错误,但我不知道如何将此信息传回 我正在将redux商店的调度与mapDispatchToProps连接 const mapDispatchToProps = (dispatch) => ({ startLogin: (email, password) => dispatch(startLogin(email, password)) }); 然后,我使用组件中的凭据

我正在使用firebase和电子邮件+密码验证提供程序。正确的凭据案例按预期工作。我的问题是,若凭证错误,则会捕获错误,但我不知道如何将此信息传回

我正在将redux商店的调度与
mapDispatchToProps
连接

const mapDispatchToProps = (dispatch) => ({
  startLogin: (email, password) => dispatch(startLogin(email, password))
});
然后,我使用组件中的凭据调用此操作,如果返回了undefined(抛出错误),则设置错误

startLogin(email, password).then((data) => {
  if (!data) {
    setErrors({ login: 'Wrong credentials' });
  }
});
我的动作是这样的

export const startLogin = (email, password) => {
  return firebase.auth().signInWithEmailAndPassword(email, password).catch((err) => {
    console.log(err);
  });
};
这是可行的,但控制台显示了POST 400错误,这是我想要避免的


您无法避免将该错误登录到控制台,因为:

1) 因此,库实际上会发布凭据,如果凭据不好,则服务器会以该状态进行响应

然后

2) Firebase会将错误打包,供您处理,但此时浏览器已将其登录到控制台,这是您无法阻止的

如果您对API有控制,您可能希望总是返回带有一些自定义错误处理逻辑的200代码,但在这种情况下,您应该考虑与之和平: