我了解要检查用户的电子邮件是否已经过验证,我可以使用
firebase.auth().onAuthStateChanged((user) => {
console.log(user["emailVerified"]);
})
但是我的问题是,只要用户在收件箱中验证了他们的电子邮件地址,我就会观察/收听并重定向到另一个页面。
根据我的测试,当用户登录,更新其个人资料并注销时会触发onAuthStateChanged,但在用户在其收件箱中验证其电子邮件地址时不会触发。
无论如何,我可以检测到用户何时被验证并自动重定向到另一个页面?
答案 0 :(得分:2)
我设法通过setInterval函数使其工作,该函数每秒检查用户的emailVerified属性,具有以下内容:
setInterval(function() {
firebase.auth().currentUser.reload();
if (firebase.auth().currentUser.emailVerified) {
console.log("Email Verified!");
this.navCtrl.setRoot(HomePage);
}
}, 1000);
答案 1 :(得分:0)
很遗憾,firebase无法解决此问题,我最终在firestore文档上保留了emailVerified标志,以在打开的标签页之间同步状态。
答案 2 :(得分:0)
我最终检查了user
变量,而不是调用emailVerified()
函数并等待其响应
this.authService.afAuth.onAuthStateChanged(function(user) {
if(user){
if(user.emailVerified){
//Verified
}
}
}