'com.google.android.gms.common.api.GoogleApiClient' is deprecated

Lilian Sorlanski picture Lilian Sorlanski · Aug 20, 2019 · Viewed 12.7k times · Source

I'm using in my app Google sign-in method and I have updated today my dependencies to:

implementation "com.google.firebase:firebase-core:17.1.0"
implementation "com.google.firebase:firebase-auth:19.0.0"

And I stared to get warnings about deprecated classes.

Warning:(26, 12) 'com.google.android.gms.common.api.GoogleApiClient' is deprecated

And

Warning:(27, 36) 'com.google.android.gms.common.api.GoogleApiClient.Builder' is deprecated

This is my code:

static GoogleApiClient provideGoogleApiClient(Application app) { //deprecated
    return new GoogleApiClient.Builder(app) //deprecated
            .addApi(Auth.GOOGLE_SIGN_IN_API).build();
}

My app is still working but how can I get rid of this warnings without the need to downgrade the versions?

Answer

Paresh Mayani picture Paresh Mayani · Aug 20, 2019

Yeah GoogleApiClient has been deprecated.

As per the documentation:

When you want to make a call to one of the Google APIs provided in the Google Play services library (such as Google Sign-in and Drive), you need to create an instance of one the API client objects, which are subclasses of GoogleApi

Particularly for the authentication api, you now need to use GoogleSignInClient.

    // Configure sign-in to request the user's ID, email address, and basic
    // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();

    // Build a GoogleSignInClient with the options specified by gso.
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

You may refer following documentations for more details: