阻止Firebase验证手机创建帐户



我想将电话号码与之前创建的帐户链接;但当我核实电话号码时,我发现了两种情况:

  1. 他们向用户发送带有代码的短信,当用户输入代码时,我只需将手机保存在DB中并结束。这没有问题。

  2. 谷歌自动验证手机,不发送MSG,我想是因为输入的号码==sim号码。这里的问题是,它自动登录并在Auth中创建新的firebase用户,用户自动注销当前帐户并登录新帐户(电话号码(我想阻止它自动创建帐户。有办法做到这一点吗?

代码:

Future<void> verifyPhone() async {
final PhoneCodeAutoRetrievalTimeout autoRetrieve = (String verId) {
//this.verificationId = verId;
};
final PhoneCodeSent smsCodeSent = (String verId, [int forceCodeResend]) {
this.verificationId = verId;
smsCodeDialog(context).then((value) {
print('Signed in');
});
};
final PhoneVerificationCompleted verifiedSuccess = (FirebaseUser user) {
print('verified');
};
final PhoneVerificationFailed veriFailed = (AuthException exception) {
print('${exception.message}');
};
print("nn ${this.phoneNo} nn");
await FirebaseAuth.instance.verifyPhoneNumber(
phoneNumber: "+2${this.phoneNo.toString()}",
codeAutoRetrievalTimeout: autoRetrieve,
codeSent: smsCodeSent,
timeout: const Duration(seconds: 5),
verificationCompleted: verifiedSuccess,
verificationFailed: veriFailed,
);
}

更改verifiedSuccess函数以接受电话号码的参数,然后将电话号码保存到数据库中,而无需使用这些凭据实际登录用户。然后,当用户登录到你的应用程序时,只需检查数据库,看看电话号码字段是否存在。如果它存在,则进行验证,如果它不存在,则将用户转发回手机验证屏幕。如果您遵循此过程,请确保取出使用手机验证凭据登录用户的任何代码。这样就不会创建另一个唯一的id。

相关内容

最新更新