1

さて、私は多くの方法で関数sendEmailVerification()をトリガしようとしました。しかし、成功した人はいません。ドキュメントはどちらも助けていません。Firebase WEB - 電子メール検証が送信されていません。コードで何が問題なのですか

以下は、私が使用するソースコードの一部です。私がこれをどのように修正できるか教えてください。私のコンソールで

私は次のエラーを取得する:

TypeError: Cannot read property 'emailVerified' of null at Object.firebase.auth.onAuthStateChanged.firebaseUser [as next]

 

     btnSignUpWithGoogle.addEventListener('click', e => { 
      var provider = new firebase.auth.GoogleAuthProvider(); 

      firebase.auth().signInWithPopup(provider).then(function(result) { 
      var token = result.credential.accessToken; 
      var user = result.user; 
      }).catch(function(error) { 
      var errorCode = error.code; 
      var errorMessage = error.message; 
      var email = error.email; 
      var credential = error.credential; 
      console.log(errorCode); 
      }); 
    }); 

    btnLogin.addEventListener('click', e => { 
     const email = txtEmail.value; 
     const pass = txtPassword.value; 
     const auth = firebase.auth(); 

     const promise = auth.signInWithEmailAndPassword(email, pass); 
     promise.catch(e => console.log(e.message)); 

     txtEmail.value = ""; 
     txtPassword.value = ""; 
    }); 

    btnSignUp.addEventListener('click', e => { 
     const email = txtEmail.value; 
     const pass = txtPassword.value; 
     const auth = firebase.auth(); 

     const promise = auth.createUserWithEmailAndPassword(email, pass); 
     promise.catch(e => console.log(e.message)); 

     txtEmail.value = ""; 
     txtPassword.value = ""; 

     const emailVerified = firebaseUser.emailVerified; 

     if (!emailVerified){ 
     firebase.auth().firebaseUser.sendEmailVerification().then(function(){ 
      alert('Please check your email to verify your Account.'); 
     }); 
     } else { 
     alert('Your Email has been verified!'); 
     } 

    }); 

    firebase.auth().onAuthStateChanged(firebaseUser => { 
     if (firebaseUser) { 
     console.log(firebaseUser); 
     console.log('Logged IN!'); 
     btnLogout.style.visibility = 'visible'; 
    } 
     if (firebaseUser.emailVerified) { 
     console.log('Email is verified'); 
     } 
     else { 
     console.log('Email is not verified'); 
     firebaseUser.sendEmailVerification(); 
     } 

    }); 

+0

をIF(firebaseUser && firebaseUser.emailVerified){ – bojeil

答えて

1

は、我々はすべてのコードを見ることができますか? firebase.auth()が正しく宣言されていますか?

あなたの認証は、次のようになります。

const firebaseApp = firebase.initializeApp(firebaseConfig, 'Client'); 
const firebaseAuth = firebaseApp.auth(); 

firebaseUserがemailVerifiedキーを持っている必要があります。内部firebaseUser場合は、このようなあなたの場合はelse文を移動:

firebase.auth().onAuthStateChanged(firebaseUser => { 
    if (firebaseUser) { 
    console.log(firebaseUser); 
    console.log('Logged IN!'); 
    btnLogout.style.visibility = 'visible'; 

    if (firebaseUser.emailVerified) { 
     console.log('Email is verified'); 
    } 
    else { 
     console.log('Email is not verified'); 
     firebaseUser.sendEmailVerification(); 
    } 

    } 

}); 

console.log(firebaseUser)、言うことでしょうか?

関連する問題