LoginSignup
2
2

More than 5 years have passed since last update.

FirebaseAuth GoogleでSigninする時、毎回アカウント選択の画面を出したい。#Android #firebase

Last updated at Posted at 2016-12-08

Firebase AuthのGoogle認証で初めてサインインする時は、どのGoogleアカウントを使用するか、Googleアカウントを選択できるダイアログが出てくるのですが、1度サインアウトしてもう一度サインインしようとすると、前回サインインをしたGoogleアカウントで自動的にサインインが実行されてしまいます。複数のGoogleアカウントを所持している人にとっては不便です。何よりテストアカウントを選べないのが痛い。

毎回どのアカウントを使うか選択したい!

解決方法はAuth.GoogleSignInApi.signOut()を実行するだけです。

MainActivity.java
//この1行だけだと、次回以降に選択画面が出ない
mFirebaseAuth.signOut(); 

//Auth.GoogleSignInApi.signOutも呼び完全にサインアウトします
if (mGoogleApiClient.isConnected()){
    Auth.GoogleSignInApi.signOut(mGoogleApiClient);
}

GoogleApiClientのインスタンスが必要なので、onCreate()あたりで生成しておくことをオススメします。

MainActivity.java

 private GoogleApiClient mGoogleApiClient;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.default_web_client_id))
        .requestEmail()
        .build();

     mGoogleApiClient = new GoogleApiClient.Builder(this)
        .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
                    @Override
                    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

                    }
                })
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
     .build();
 }
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2