Search code examples
flutterfirebase-authenticationgoogle-signin

Make flutter app force a user to choose an account with FirebaseAuth and GoogleSignInAuthentication


I want to force a user to select one of his account during login time. Is there any method to do so? I haven't found any configuration like prompt=select_account+consent.

Now, with these codes, after a user logout and then try to login again, it will automatically sign in with the selected account, there is no window showing up for user to select an account.

pubspec.yaml

firebase_auth: ^0.8.1+4
google_sign_in: ^3.2.4

Login part

GoogleSignInAccount googleUser = await _googleSignIn.signIn();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;

final AuthCredential credential = GoogleAuthProvider.getCredential(
  accessToken: googleAuth.accessToken,
  idToken: googleAuth.idToken,
);
user = await _auth.signInWithCredential(credential);

Logout part

await FirebaseAuth.instance.signOut();
GoogleSignIn _googleSignIn = GoogleSignIn();
await _googleSignIn.signOut();

Solution

  • Use GoogleSignInAccount.disconnect() before signing out to revoke the previous authentication:

    await _googleSignIn.disconnect();
    await FirebaseAuth.instance.signOut();