requestVerificationCode method

Future<void> requestVerificationCode({
  1. required String phoneNumber,
  2. void onVerificationCompleted(
    1. FirebaseAuthenticationResult authenticationResult
    )?,
  3. void onVerificationFailed(
    1. FirebaseAuthException exception
    )?,
  4. void onCodeSent(
    1. String verificationId
    )?,
  5. void onCodeTimeout(
    1. String verificationId
    )?,
  6. String? autoRetrievedSmsCodeForTesting,
  7. Duration timeout = const Duration(seconds: 30),
  8. int? forceResendingToken,
})

Request a SMS verification code for phoneNumber sign-in.

Native Platform support

Implementation

Future<void> requestVerificationCode({
  required String phoneNumber,
  void Function(FirebaseAuthenticationResult authenticationResult)?
      onVerificationCompleted,
  void Function(FirebaseAuthException exception)? onVerificationFailed,
  void Function(String verificationId)? onCodeSent,
  void Function(String verificationId)? onCodeTimeout,
  String? autoRetrievedSmsCodeForTesting,
  Duration timeout = const Duration(seconds: 30),
  int? forceResendingToken,
}) async {
  await firebaseAuth.verifyPhoneNumber(
    phoneNumber: phoneNumber,

    /// Automatic handling of the SMS code on Android devices.
    verificationCompleted: (PhoneAuthCredential phoneAuthCredential) async {
      final userCredential = await firebaseAuth.signInWithCredential(
        phoneAuthCredential,
      );

      onVerificationCompleted?.call(
        FirebaseAuthenticationResult(user: userCredential.user),
      );
    },

    /// Handle failure events such as invalid phone numbers or whether the SMS
    /// quota has been exceeded.
    verificationFailed: (FirebaseAuthException firebaseAuthException) {
      onVerificationFailed?.call(firebaseAuthException);
    },

    /// Handle when a code has been sent to the device from Firebase, used to
    /// prompt users to enter the code.
    codeSent: (String verificationId, int? resendToken) async {
      _mobileVerificationId = verificationId;
      onCodeSent?.call(verificationId);
    },

    /// Handle a timeout of when automatic SMS code handling fails.
    codeAutoRetrievalTimeout: (String verificationId) {
      _mobileVerificationId = verificationId;
      onCodeTimeout?.call(verificationId);
    },
    forceResendingToken: forceResendingToken,
    timeout: timeout,
  );
}