checkUserLogin static method

dynamic checkUserLogin(
  1. BuildContext context
)

Implementation

static checkUserLogin(BuildContext context) async {
  await Firebase.initializeApp();
  final GoogleSignIn googleSignIn = GoogleSignIn();
  final FirebaseAuth firebaseAuth = FirebaseAuth.instance;

  if (await isSignedIn() == true) {
    GoogleSignInAccount googleUser =
        await (googleSignIn.signIn() as Future<GoogleSignInAccount>);
    GoogleSignInAuthentication googleAuth = await googleUser.authentication;

    final AuthCredential credential = GoogleAuthProvider.credential(
      accessToken: googleAuth.accessToken,
      idToken: googleAuth.idToken,
    );

    final User logInUser =
        (await firebaseAuth.signInWithCredential(credential)).user!;

    /**
     * Make user online
     */
    await ChatDBFireStore.makeUserOnline(logInUser);

    Navigator.pushReplacement(
        context,
        MaterialPageRoute(
            builder: (context) =>
                DashboardScreen(currentUserId: logInUser.uid)));
  } else {
    //return ChatData.widgetLoginScreen(context);
    Navigator.pushReplacement(
        context, MaterialPageRoute(builder: (context) => LoginScreen()));
  }
}