acceptPhoneNumber method

  1. @override
Future<void> acceptPhoneNumber(
  1. String phoneNumber
)
override

Implementation

@override
Future<void> acceptPhoneNumber(String phoneNumber) async {
  value = SMSCodeRequested();

  try {
    if (kIsWeb) {
      return await _webSignIn(phoneNumber);
    }

    await auth.verifyPhoneNumber(
      phoneNumber: phoneNumber,
      verificationCompleted: (credential) async {
        value = PhoneVerified(credential);
        await Future.delayed(const Duration(milliseconds: 300));
        setCredential(credential);
      },
      verificationFailed: (exception) {
        value = PhoneVerificationFailed(exception);
      },
      codeSent: (String verificationId, int? resendToken) async {
        value = SMSCodeSent(resendToken);
        final code = await _smsCodeCompleter.future;
        final credential = PhoneAuthProvider.credential(
          verificationId: verificationId,
          smsCode: code,
        );

        setCredential(credential);
      },
      codeAutoRetrievalTimeout: (verificationId) {
        value = AuthFailed(AutoresolutionFailedException());
      },
    );
  } on Exception catch (err) {
    value = AuthFailed(err);
  }
}