【问题标题】:firebase email verification webfirebase 电子邮件验证网站
【发布时间】:2018-06-15 18:52:30
【问题描述】:

我的电子邮件验证有问题。我的错误是“用户为空”,因此它不会发送验证电子邮件,但它确实在控制台中显示了登录 uid,并且我的 console.firebase.google.com 项目显示了已注册的电子邮件。我应该更改什么以便发送电子邮件并且在用户验证他们的电子邮件之前不授予访问权限?我已经阅读了文档,但无法弄清楚。提前谢谢你。

//add create user event
btnSignUp.addEventListener('click', e => {
    //get email and Password
    const email = txtEmail.value;
    const pass = txtPassword.value;
    const auth = firebase.auth();
    const promise = auth.createUserWithEmailAndPassword(email, pass);
    var user = firebase.auth().currentUser;
    user.sendEmailVerification();
    promise.catch(e => console.log(e.message));
});
//Add a realtime listener
firebase.auth().onAuthStateChanged(function(user) {
    if (user.emailVerified) {
        console.log('Email is verified');
        console.log(user);
    } else {
        window.location = "index.html";
        firebase.auth().signOut();
        alert("Email is not verified");
    }

【问题讨论】:

  • 好的,谢谢。有没有办法让用户在点击电子邮件中的验证链接之前不显示在 Google Firebase 控制台中?

标签: javascript firebase-authentication


【解决方案1】:

对于Firebase version 9,我目前正在使用-

createUserWithEmailAndPassword(auth, email, password)
  .then((userCredential) => {
    // Signed in 
    const user = userCredential.user;

    sendEmailVerification(user)
      .then(() => {
        // Email verification sent!
        let msg = 'An email verification link has been sent to ' + user.email;
        document.querySelector('.success.email_msg').innerHTML=msg;
      });
  })
  .catch((error) => {
    document.querySelector('.error.reg_error').innerHTML = error.message;
  });

【讨论】:

    【解决方案2】:

    您不是在等待承诺解决。更新到以下sn-p:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 2020-07-16
      • 2021-07-10
      • 2021-10-10
      • 2019-04-03
      • 2018-12-25
      相关资源
      最近更新 更多