Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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();
 }
flatfisher
釣りが好きです
mixi
全ての人に心地よいつながりを
http://mixi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away