2016-11-30 6 views
0

Google делает пометку в своем Signing Out Users tutorial поговорке:Должен ли я вызывать GoogleApiClient.connect(), прежде чем выходить из системы GoogleSignInAPI?

Примечание: Вы должны подтвердить, что GoogleApiClient.onConnected был вызван перед вызовом SignOut.

Но и на их Firebase implementation и old Google implementation они не называют GoogleApiClient.connect() на их mGoogleApiClient например, для onConnected() называться перед вызовом signOut().

Итак, что я должен соблюдать? Документация или примеры?

ответ

0

Ответ да. GoogleApiClient.connect() должен называться - в противном случае мы получим IllegalStateException:

java.lang.IllegalStateException: GoogleApiClient еще не подключен.

Так вот как вы выйдете:

mGoogleClient = new GoogleApiClient.Builder(getContext()) 
     .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { 
      @Override 
      public void onConnected(@Nullable Bundle bundle) { 
      //SIGN OUT HERE 
      Auth.GoogleSignInApi.signOut(mGoogleClient).setResultCallback(
        new ResultCallback<Status>() { 
         @Override 
         public void onResult(Status status) {/*ignored*/} 
        }); 
      } 

      @Override 
      public void onConnectionSuspended(int i) {/*ignored*/} 
     }) 
     .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() { 
      @Override 
      public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
      /*ignored*/ 
      } 
     }) 
     .addApi(Auth.GOOGLE_SIGN_IN_API) //IMPORTANT!!! 
     .build(); 

mGoogleClient.connect(); 

Так что я предполагаю, что у них есть эта часть отсутствует в их примере кода.