Firebase getIdToken()+ React Native +刷新用户数据库以验证电子邮件验证用户

时间:2017-06-28 18:57:18

标签: firebase react-native firebase-authentication

我正在使用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);
    })
  } 
}
  ) 
}

1 个答案:

答案 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);
        }