繁体   English   中英

如何使用 Firebase Auth 向用户发送验证 email

[英]how to send verification email to users using Firebase Auth

我想向刚刚注册的用户发送验证 email。 我一直在为此寻找解决方案,并认为我找到了一个,但它没有用。 我查看了 Firebase Auth 文档并在页面上尝试了代码,但它也不是解决方案。

我的代码在下面按下注册按钮时“尝试”实际上运行,我可以看到它。 在 Firebase Auth 控制台页面中,我可以看到用户刚刚创建但收件箱中没有获得验证 email。

  const handleSignup = async (email, pswd) => {
    try {
      await createUserWithEmailAndPassword(auth, email, pswd);
      setSignupEmail("");
      setSignupPassword("");
      setSignupPasswordAgain("");
      signOut(auth);
      sendEmailVerification(auth.currentUser);
      alert("Check your email for a verification link.");
    } catch (err) {
      console.log(err);
    }
  };

您在调用 signOut signOut() sendEmailVerification() ,因此当您将auth.currentUser传递给sendEmailVerification()时,它是null 您应该会在 catch 块中看到记录的错误。

此外, sendEmailVerification()signOut()方法都是异步的并返回 Promises。

以下应该可以解决问题(未经测试):

  const handleSignup = async (email, pswd) => {
    try {
      await createUserWithEmailAndPassword(auth, email, pswd);
      setSignupEmail("");
      setSignupPassword("");
      setSignupPasswordAgain("");
      await sendEmailVerification(auth.currentUser);
      await signOut(auth);
      alert("Check your email for a verification link.");
    } catch (err) {
      console.log(err);
    }
  };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM