创建用户时关闭发送验证邮件

问题描述 投票:0回答:1

我在我的 React-Native 应用程序开发中使用 Firebase 身份验证。

当我使用 Firebase 身份验证创建用户时,Firebase 会自动发送验证电子邮件。

但我希望 Firebase 在创建用户时不要发送验证电子邮件。

这是创建用户的代码。

try {
var data = await auth().createUserWithEmailAndPassword(this.state.account_email, this.state.account_password);
this.authData = data;

  // verification email
  // this.authData.user.sendEmailVerification();

} catch(error) {
  console.error("[SignUp] onPressSignup() -> error: ", error);

  if (error.code === 'auth/email-already-in-use') {
    Toast.show({
      type: 'error',
      text2: "Your email address is already in use.",
    });
  } else if (error.code === 'auth/invalid-email') {
    Toast.show({
      type: 'error',
      text2: "Your email address is invalid.",
    });
  } else {
    Toast.show({
      type: 'error',
      text2: error.message,
    });
  }
}

我还尝试使用firebase admin sdk的createUser函数。

// user
var userData = {
  email: data.email,
  password: data.password,
  emailVerified: true,
};

var userRecord = await getAuth().createUser(userData);
functions.logger.info("\tuserRecord: ", userRecord.toJSON());

有什么办法可以关闭自动发送验证邮件吗?

javascript react-native firebase-authentication firebase-admin
1个回答
0
投票

我终于解决了这个问题。

  1. 我使用firebase admin sdk来创建用户

  2. 创建用户时,使用随机电子邮件(不是真实的电子邮件,但具有正确的电子邮件格式,例如[电子邮件受保护])。

  3. 创建用户后,使用 getAuth().updateUser 将随机电子邮件更改为真实电子邮件。

    ` 尝试{ // 随机电子邮件 var random = Math.floor(Math.random() * 100000); var randomEmail = 随机 + "@123.com"; function.logger.info(" randomEmail: " + randomEmail);

    //用户 var 用户数据 = { 电子邮件:随机电子邮件, 密码:数据.密码, 电子邮件验证:真实, };

    var userRecord =等待 getAuth().createUser(userData); function.logger.info(" userRecord: " + userRecord.toJSON());

    等待 getAuth().updateUser(userRecord.uid, { 电子邮件:数据.电子邮件, 电子邮件验证:真实, });

    返回{ 成功:真实, docId: userRecord.uid, };

} 捕获(错误){ function.logger.error("createUser() -> 错误:", error);

return {
  success: false,
  error: error.message,
};

}`

© www.soinside.com 2019 - 2024. All rights reserved.