signIn method

Future<UserCredential?> signIn(
  1. dynamic authProvider
)

Implementation

Future<UserCredential?> signIn(AuthProvider authProvider) async {
  try {
    UserCredential userCredential;
    if (kIsWeb) {
      userCredential =
          await FirebaseAuth.instance.signInWithPopup(GoogleAuthProvider());
      logger.i("Logged in via google on web");
      authProvider.notifyListeners();
    } else {
      final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
      GoogleSignInAuthentication? googleAuth =
          await googleUser?.authentication;
      AuthCredential authCredential = GoogleAuthProvider.credential(
        accessToken: googleAuth?.accessToken,
        idToken: googleAuth?.idToken,
      );
      userCredential =
          await FirebaseAuth.instance.signInWithCredential(authCredential);
      logger.i("Logged in via google on mobile");
      authProvider.notifyListeners();
    }
    // FirebaseAuth.instance.signInWithCredential(authCredential); // important!
    return userCredential;
  } catch (error) {
    logger.e("Error while singing in with google", error);
  }
  return null;
}