signInWithProvider method

  1. @override
Future<void> signInWithProvider(
  1. TargetPlatform platform
)
override

Implementation

@override
Future<void> signInWithProvider(TargetPlatform platform) async {
  OAuthProvider? provider = OAuthProviders.resolve(auth, config.providerType);

  if (provider == null) {
    provider = config.createProvider();
    OAuthProviders.register(auth, provider);
  }

  try {
    value = const SigningIn();

    late OAuthCredential credential;

    if (kIsWeb) {
      return await _signInWeb(provider);
    } else if (platform == TargetPlatform.macOS) {
      credential = await provider.desktopSignIn();
    } else {
      credential = await provider.signIn();
    }

    setCredential(credential);
  } on Exception catch (e) {
    value = AuthFailed(e);
  }
}