validateVerificationCode method

  1. @override
Future<AuthenticatedUser?> validateVerificationCode({
  1. required String provider,
  2. required String method,
  3. required String smsCode,
  4. required String verificationId,
  5. required dynamic onSuccess(
    1. AuthenticatedUser,
    2. String idToken
    ),
  6. required dynamic onError(
    1. String error
    ),
  7. required dynamic onVerificationFailure(
    1. String error
    ),
})
override

Verifies a phone code using smsCode and verificationId.

Implementation

@override
Future<AuthenticatedUser?> validateVerificationCode({
  required String provider,
  required String method,
  required String smsCode,
  required String verificationId,
  required Function(AuthenticatedUser, String idToken) onSuccess,
  required Function(String) onError,
  required Function(String) onVerificationFailure,
}) async {
  try {
    final SignInWithVerificationCode _signInWithVerificationCode =
        SignInWithVerificationCode();
    final response =
        await _signInWithVerificationCode.validateVerificationCode(
      provider: provider,
      method: method,
      smsCode: smsCode,
      verificationId: verificationId,
    );

    if (response != null) {
      final user = response['user'];
      final idToken = response['idToken'];

      await AuthManager()._updateCurrentUser(
        Utils.globalAppKey.currentContext!,
        user,
      );

      onSuccess(user, idToken);
    } else {
      onError('Something went wrong, User not found');
    }

    return response?['user'];
  } catch (e) {
    onVerificationFailure('Error verifying phone code: ${e.toString()}');
    return null;
  }
}