我正在使用firebase和Email + Password auth提供程序。正确的凭据案例按预期工作。我的问题是,如果凭据错误,会发现错误,但我不知道如何传回这些信息。
我将来自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错误,我想避免。
答案 0 :(得分:3)
您无法将错误记录到控制台中,因为:
1)This HTTP request is how Firebase Authentication verifies the user credentials.因此,库实际上是POST凭证,如果它们不好,那么服务器会以该状态响应。
然后......
2)Your browser decides to log bad requests to the log. Firebase包含了您要处理的错误,但此时浏览器已将其记录到控制台中,这是您无法阻止的。
如果您可以控制API,您可能希望始终返回带有一些自定义错误处理逻辑的200代码,但在这种情况下,您应该考虑使用它来实现和平:)