为什么 Firebase-Email-Verification 不起作用?

问题描述

$("#btn1").on('click',function(e) {
e.preventDefault(); // <== disable form submit

const email = signupForm['signup-email'].value;
const password = signupForm['signup-password'].value;


// sign up the user & add firestore data
const auth = firebase.auth();

const promise = auth.createUserWithEmailAndPassword(email,password);
promise.then(user => {
  user = firebase.auth().currentUser;
  user.sendEmailVerification();
}).catch(error => console.log);

});


$("#btn2").on('click',function(e) {
  e.preventDefault(); // <== disable form submit


  var user = firebase.auth().currentUser;

if (user.emailVerified) {
  // email is verified.
  console.log("email is verified")
} else {
  // email is not verified.
  console.log("email is not verified")
}
  
  });

我希望我的网站在用户输入他的电子邮件和密码后向用户发送一封电子邮件。

在我的代码中,user.sendEmailVerification(); 工作正常并且用户会收到一封电子邮件。

如果用户验证他的电子邮件并单击 btn2,控制台应该打印“电子邮件已验证”,但这不会发生。控制台总是打印“电子邮件未验证”。我也试过 firebase.auth().onAuthStateChanged 方法,但结果是一样的。

var user = firebase.auth().currentUser;
 firebase.auth().onAuthStateChanged(user => {
      if(user.emailVerified){ 
        console.log('email is verified')
       }else{
           console.log('email not verified')
       }
    })

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)