当前位置: 首页 > 知识库问答 >
问题:

未发送Firebase WEB电子邮件验证。代码出了什么问题

宰鸿博
2023-03-14

嗯,我已经尝试了多种方法来触发sendeMailVerification()函数。但没有一个成功。医生也帮不上忙。

下面是我将要使用的部分源代码。请让我知道我可以如何纠正这一点。

在我的控制台上,我得到以下错误:

TypeError:无法读取Object.Firebase.auth.OnauthStateChanged.FirebaseUser[as next]中为null的属性“email verified”


        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();
      }

    });

共有2个答案

孟雪风
2023-03-14

sendEmailVerification()仅在您已经将电子邮件地址加载到FireBase中时才起作用。

查看下面的代码:https://github.com/aqeelsmith/angularjsdata/blob/master/builds/angulardata/js/services/authentication.js-行82

李博达
2023-03-14

我们能看看所有的代码吗?您确定您的firebase.auth()声明正确吗?

您的身份验证应该如下所示:

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

firebaseUser应该有emailVerified将if else语句移动到if firebaseUser内部,如下所示:

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),是怎么说的?

 类似资料:
  • 我正在试验Cognito,但我似乎不知道如何让Cognito向用户发送验证电子邮件,让他们验证他们的电子邮件地址。 这是在我的后端服务器中,我从新用户那里收到了用户名、电子邮件和密码。我正在抑制消息操作,因为我不希望用户收到临时密码。相反,我想将密码设置为他们已经提供给我的密码。 然而,用户从未收到验证其电子邮件地址的电子邮件。在用户池配置中,我在“要验证哪些属性”下选择了“电子邮件”我已经在SE

  • 当我注册一个用户,或单击“单击此处请求另一个”时,不会发送验证邮件,尽管它的回答是“一个新的验证链接已发送到您的电子邮件地址”。我检查了我的和文件,并使用tinker和

  • 大家好抱歉我是AWS的新手, 我有麻烦从AWS发送电子邮件地址。 以下是我的配置详细信息: 1)我已经成功验证了我的电子邮件地址和域名。 2) 同样,我也通过以下策略添加IAM用户 {"语句": [{ "效果":"允许","操作":"ses: SendRawEmail","资源":"*" }]} 3)您可以看到添加邮件地址已验证 但我想我不知道为什么我在尝试发送邮件时会出现以下错误。 我收到以下错

  • 我使用AWS SES服务发送电子邮件与验证的测试电子邮件地址在SES和使用相同的来源。 我正试图将电子邮件发送到其他电子邮件地址,但无法发送。这是给我的错误“电子邮件地址未经验证。以下身份未通过在US-EAST-1地区的检查”。 发送电子邮件的代码参考:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-send-email-

  • 我正在做一个学校项目,我试图在创建帐户时发送一封验证电子邮件,但我不断收到一个身份验证错误,即使我的凭据是正确的。 错误日志: 我尝试了几种不同的身份验证器,但似乎都不起作用!谢谢!

  • 我目前正在开发一个移动应用程序作为我最后一学期的项目。在我的移动应用程序中,我使用Firebase身份验证进行了此电子邮件验证。这是我执行此功能的教程(如果您感兴趣)。 Firebase登录 我这里的问题是,当我在我的移动应用程序中添加了重置密码功能(本教程的下一部分)时,即使电子邮件经过验证,电子邮件验证警报仍然存在。 设置活动(重置密码和电子邮件验证功能所在) 这是错误日志 这是设置中的图片