我在我的 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());
有什么办法可以关闭自动发送验证邮件吗?
我终于解决了这个问题。
我使用firebase admin sdk来创建用户
创建用户时,使用随机电子邮件(不是真实的电子邮件,但具有正确的电子邮件格式,例如[电子邮件受保护])。
创建用户后,使用 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() -> 错误:", 错误);
return {
success: false,
error: error.message,
};
}`