Google Authentication

First we need to setup project in firebase console
next 
Add below package name in pubspec.yaml
google_sign_in: ^5.4.2
firebase_auth: ^3.11.2
firebase_core: ^1.24.0
firebase_messaging: ^13.1.0

package url: https://pub.dev/packages/google_sign_in



Code:

1.initialize firebase in main.dart file

await Firebase.initializeApp();

2.Login Screen

Loginfinal FirebaseAuth auth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn = GoogleSignIn();

For Login Add the below code:
Future<void> signup(BuildContext context) async {

      final GoogleSignInAccount? googleSignInAccount = await googleSignIn.signIn();
      if (googleSignInAccount != null) {
        final GoogleSignInAuthentication googleSignInAuthentication =
        await googleSignInAccount.authentication;
        final AuthCredential authCredential = GoogleAuthProvider.credential(
            idToken: googleSignInAuthentication.idToken,
            accessToken: googleSignInAuthentication.accessToken);

        // Getting users credential
        UserCredential result = await auth.signInWithCredential(authCredential);
        User? user = result.user;
        if(!mounted) return;
        Navigator.push(context, SlideRightRoute(page: LogoutScreen(user: user!)));
    }
  

}

For signout:

await auth.signOut();
_googleSignIn.isSignedIn().then((s) async{
  debugPrint("logout s: $s");
  if(s){//true if user is logged in 
    await _googleSignIn.signOut();
  }
});


Sign In or Register to comment.