使用以下Firebase电子邮件身份验证代码,您如何知道身份验证是否成功?
firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === 'auth/wrong-password') {
alert('Wrong password.');
} else {
alert(errorMessage);
}
console.log(error);
});
我知道很容易认识到身份验证是否不成功,但是,我如何知道用户是否能够使用他们提供的凭据登录?似乎没有“成功”登录的回调 . 我目前有一个登录表单,我想要成功登录导航 .
3 回答
这里有一个firebaser
@ ksav的答案显示了检测用户何时登出的首选方式 .
为了完整性,我想展示第二种检测方法,即直接响应
signInWithEmailAndPassword
:用户登录后将调用
then()
.我们在文档中不再强调这种方法的原因是它会错过很多情况 . 例如:
当用户重新加载页面时,不会调用
then()
. 另一方面,onAuthStateChanged()
回调也会被调用 will .用户退出登录(例如,如果无法刷新其短期令牌),则不会调用
catch()
. 另一方面,onAuthStateChanged()
回调也会被调用 will .如果您想明确回复用户何时主动登录,我的回答中的方法可能会有用 . 但在大多数情况下,我们建议您使用@ ksav的答案 .
获取当前登录的用户
获取当前用户的推荐方法是在Auth对象上设置观察者:
文件:https://firebase.google.com/docs/auth/web/manage-users
如果没有任何缓存,那么它就成功了 .