verifyPhoneNumber method
Future<void>
verifyPhoneNumber({
- required String phoneNumber,
- TextEditingController? otpController,
- bool signInOnAutoRetrival = true,
- void codeSent()?,
- void verificationFailed(
- FirebaseAuthException
- void verificationCompleted(
- PhoneAuthCredential
- void codeAutoRetrievalTimeout()?,
- RecaptchaVerifier? verifier,
- int? forceResendingToken,
- Duration? timeout,
Starts a sign-in flow for a phone number.
You can optionally provide a RecaptchaVerifier instance to control the
reCAPTCHA widget apperance and behaviour.
Once the reCAPTCHA verification has completed, called ConfirmationResult.confirm
with the users SMS verification code to complete the authentication flow.
This method is only available on web based platforms.
Implementation
Future<void> verifyPhoneNumber({
required String phoneNumber,
TextEditingController? otpController,
bool signInOnAutoRetrival = true,
void Function(String, int?)? codeSent,
void Function(FirebaseAuthException)? verificationFailed,
void Function(PhoneAuthCredential)? verificationCompleted,
void Function(String)? codeAutoRetrievalTimeout,
RecaptchaVerifier? verifier,
int? forceResendingToken,
Duration? timeout,
}) async {
await _auth.verifyPhoneNumber(
phoneNumber: phoneNumber,
timeout: timeout ?? Duration(seconds: 30),
forceResendingToken: forceResendingToken,
verificationCompleted: verificationCompleted ??
(credential) async {
if (otpController != null) {
otpController.text = credential.smsCode!;
}
if (signInOnAutoRetrival) {
await _auth.signInWithCredential(credential);
}
_otpSentController.sink.add(true);
_errorStreamController.sink.add(null);
},
verificationFailed: verificationFailed ??
(exception) {
_otpSentController.sink.add(false);
_errorStreamController.sink.add(exception.message);
},
codeSent: codeSent ??
(verificationId, forceResendingToken) {
this.verificationId = verificationId;
this.forceResendingToken = forceResendingToken;
_otpSentController.sink.add(true);
_errorStreamController.sink.add(null);
},
codeAutoRetrievalTimeout: codeAutoRetrievalTimeout ?? (verificationId) {},
);
}