首页 > 解决方案 > 如何在将电子邮件设为主要电子邮件之前对其进行验证(Firebase 身份验证)

问题描述

在firebase auth中,只有在我将其作为登录的主要电子邮件后,我才能验证用户的电子邮件。我可以通过这种方式更改用户的电子邮件:

var user = firebase.auth().currentUser;

user.updateEmail("user@example.com").then(function() {
  // Update successful.
}).catch(function(error) {
  // An error happened.
});

然后我可以在这样设置后验证电子邮件:

var user = firebase.auth().currentUser;

user.sendEmailVerification().then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

我想要做的是在将电子邮件设置为用户主电子邮件之前验证电子邮件。

标签: javascriptfirebasefirebase-authentication

解决方案


是的,您只有在验证后才能更改电子邮件。API 没有很好的文档记录。您可以通过verifyBeforeUpdateEmail来完成。

firebase.auth().currentUser.verifyBeforeUpdateEmail('newEmail@example.com')
  .then(function() {
    // Verification email sent.
    /  When the user clicks the email link,
    // it will update to newEmail@example.com and set it as verified,
    // emailVerified: true.
    // Until then, the old email remains on the account.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

推荐阅读