"FirebaseError: Invalid authentication credentials" when configuring Google sign-in on Android

I am trying to set up a google account for my application.

I followed the tutorial here:

https://developers.google.com/identity/sign-in/android/start-integrating

I did everything. I can login and log out.

Then I added an Async task to get the token that appears to be successfully retrieved. It is implemented as follows:

private class GetIdTokenTask extends AsyncTask<Void, Void, String> {


            private static final  String SERVER_CLIEdNT_ID = "749433126040-ca4gfj7ucuh0m2suo3230u03o3d7doni.apps.googleusercontent.com";

        @Override
        protected String doInBackground(Void... params) {

            String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
            Account account = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
            String scopes = "audience:server:client_id:" + SERVER_CLIEdNT_ID; // Not the app client ID.
            try {
                return GoogleAuthUtil.getToken(getApplicationContext(), account, scopes);
            } catch (IOException e) {
                Log.e(TAG, "Error retrieving ID token.", e);
                return null;
            } catch (GoogleAuthException e) {
                Log.e(TAG, "Error retrieving ID token. Google exception", e);
                return null;
            }
        }

        @Override
        protected void onPostExecute(String result) {
            Log.i(TAG, "ID token: " + result);
            if (result != null) {

                idToken = result;

                Toast.makeText(context, "token is " + result, Toast.LENGTH_LONG).show();


            } else {
                // There was some error getting the ID Token
                // ...
                Toast.makeText(context, "token is null", Toast.LENGTH_LONG).show();
            }
        }

    }

      

So after running the method and getting the token, I then run the generic firebase code to connect to Firebase (already configured the google app, put the client id in firebase, enabled it, etc.). I got the code from https://www.firebase.com/docs/android/guide/login/google.html

And implemented it like this:

 public void loginFireBase() {


    Firebase ref = new Firebase("https://boiling-fire-944.firebaseio.com");
    ref.authWithOAuthToken("google", idToken, new Firebase.AuthResultHandler() {


        @Override
        public void onAuthenticated(AuthData authData) {
            // the Google user is now authenticated with your Firebase app

            Toast.makeText(context, "user succesfully authenticated with firebase", Toast.LENGTH_LONG).show();
            Toast.makeText(context, idToken, Toast.LENGTH_LONG).show();
        }

        @Override
        public void onAuthenticationError(FirebaseError firebaseError) {
   ///////THIS IS THE PART WHERE THE ERROR IS GENEREATED  FROM//////////

            Log.v("firebase problem", firebaseError.toString());
            Toast.makeText(context, "I'm an authenticated error" + "id Token was " + idToken, Toast.LENGTH_LONG).show();


        }
    });
}

}

      

So, I login, I receive the token and then pass it to the firehase authWithOAuthToken method, and then I get the error:

FirebaseError: Invalid authentication credentials.

Can anyone see any problem in my code? I have a feeling the token is invalid, but cannot find a way to check its validity.

Tell me if I need to write more, I tried to keep him posted.

Thanks to everyone who can help!

+3


source to share


2 answers


Whenever I need to authenticate with Firebase on Android, I go back to the Firebase Android demo . Here's how this app gets the OAuth token for Google Authentication :

String scope = String.format("oauth2:%s", Scopes.PLUS_LOGIN);
token = GoogleAuthUtil.getToken(
                                GoogleOAuthActivity.this, 
                                Plus.AccountApi.getAccountName(mGoogleApiClient), 
                                scope);

      



It looks like you are getting a cross client ID for the user , which is not a valid OAuth token.

Update (20160308) : I am currently looking at the FirebaseUI library instead , which includes this functionality and is more updated.

+6


source


In my case, I had this error message in Firebase/Crash

the solution to this line was done:



rm $HOME/Library/Preferences/com.google.SymbolUpload*

this was happening because previously had already generated the file ServiceAccount.json

and restarted the required credentials

0


source







All Articles