verifyPhoneNumber method

  1. @override
Future<Response<void>> verifyPhoneNumber({
  1. String? phoneNumber,
  2. int? forceResendingToken,
  3. PhoneMultiFactorInfo? multiFactorInfo,
  4. MultiFactorSession? multiFactorSession,
  5. Duration timeout = const Duration(seconds: 30),
  6. required void onComplete(
    1. PhoneAuthCredential credential
    ),
  7. required void onFailed(
    1. FirebaseAuthException exception
    ),
  8. required void onCodeSent(
    1. String verId,
    2. int? forceResendingToken
    ),
  9. required void onCodeAutoRetrievalTimeout(
    1. String verId
    ),
})
override

Implementation

@override
Future<Response<void>> verifyPhoneNumber({
  String? phoneNumber,
  int? forceResendingToken,
  PhoneMultiFactorInfo? multiFactorInfo,
  MultiFactorSession? multiFactorSession,
  Duration timeout = const Duration(seconds: 30),
  required void Function(PhoneAuthCredential credential) onComplete,
  required void Function(FirebaseAuthException exception) onFailed,
  required void Function(String verId, int? forceResendingToken) onCodeSent,
  required void Function(String verId) onCodeAutoRetrievalTimeout,
}) async {
  final response = Response();
  if (AuthValidator.isValidPhone(phoneNumber)) {
    try {
      firebaseAuth.verifyPhoneNumber(
        phoneNumber: phoneNumber,
        forceResendingToken: forceResendingToken,
        multiFactorInfo: multiFactorInfo,
        multiFactorSession: multiFactorSession,
        timeout: timeout,
        verificationCompleted: onComplete,
        verificationFailed: onFailed,
        codeSent: onCodeSent,
        codeAutoRetrievalTimeout: onCodeAutoRetrievalTimeout,
      );
      return response;
    } on FirebaseAuthException catch (_) {
      return response.withException(_.message, status: Status.failure);
    }
  } else {
    return response.withException("Phone number isn't valid!");
  }
}