我正在使用React Native项目并使用Firebase。
我试图让用户在验证了他们的电子邮件地址后登录。我向用户发送注册电子邮件,用户点击验证链接以验证自己,然后应该能够登录。我当前的代码允许用户登录后验证,但只有在我刷新应用程序之后。我希望用户在验证后登录而不刷新应用程序。 我发现我可以使用Firebase中的getIdToken()来实现它。但不知怎的,我似乎无法让它发挥作用。任何指针在哪里以及我做错了什么?在此先感谢。
此功能的代码段是:
_login = () =>{
var me = this;
firebaseRef.auth().onAuthStateChanged(function(user) {
if(user){
user.getIdToken(forceRefresh).then(function() {
if( firebaseRef.auth().currentUser.emailVerified){
firebaseRef.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then(function(){
// some function here, which is working perfectly
},
function(error) {
alert('The username or password is incorrect');
console.log(error);
})
}
else {
alert('Your email has not been verified');
}
},
function(error) {
alert('There is an email verification error');
console.log(error);
})
}
}
)
}
答案 0 :(得分:0)
firebase.auth().signInWithEmailAndPassword(email, password)
.then(() => {
if(firebase.auth().currentUser.emailVerified === false) {
Alert.alert('Message')
} else {
Actions.screen()
}})
.catch(erro => Alert.alert(erro);
}