【发布时间】:2021-05-17 01:25:52
【问题描述】:
$("#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')
}
})
【问题讨论】:
标签: javascript firebase firebase-authentication email-verification