Firebase-从本地或生产环境域发送verifyEmail电子邮件

时间:2019-12-14 22:51:42

标签: javascript firebase google-cloud-firestore firebase-authentication

我正在尝试配置我的Firebase设置,以便可以从开发或生产环境中发送verifyEmail电子邮件。

我有一个.env文件,其中有两个设置,如下所示:

REACT_APP_PROD_CONFIRMATION_EMAIL_REDIRECT = https://example.com

REACT_APP_DEV_CONFIRMATION_EMAIL_REDIRECT = http://localhost:3000

然后在我的Firebase配置文件中,我有:

doSendEmailVerification = () =>
      this.auth.currentUser.sendEmailVerification({

      url: process.env.NODE_ENV === 'production' ? process.env.REACT_APP_PROD_CONFIRMATION_EMAIL_REDIRECT : process.env.REACT_APP_DEV_CONFIRMATION_EMAIL_REDIRECT,
      }); 

当我在开发环境中进行测试时,此方法工作正常。

当我部署发行版并尝试在生产环境中对其进行测试时,该电子邮件不会发送。

两个Firebase帐户的发送电子邮件配置方式相同。

不会生成错误消息,并且提交处理程序中的步骤将被跳过。

我的提交处理程序具有:

this.props.firebase
    .doCreateUserWithEmailAndPassword(values.email, values.password)
    .then(authUser => {
    return this.props.firebase.user(authUser.user.uid).set(
        {
          name: values.name,
          email: values.email,
          createdAt: new Date()

        },
        { merge: true },
    );
    })
    .then(() => {
      return this.props.firebase.doSendEmailVerification();
      })
    .then(() => {
      this.setState({ ...initialValues });
      this.props.history.push(ROUTES.DASHBOARD);

1 个答案:

答案 0 :(得分:0)

您必须在Firebase的“身份验证”部分中将您的域列入白名单,才能正常工作。我在这里看到了几条帖子,说不再需要白名单步骤-但对我来说是这样。