Firebase Android: Google Sign In Failure
Solution 1
I finally found the problem, I made a mistake while authenticating my app in the Firebase Console here (section "before you begin"), 4th step. I entered the debug
one instead and it works now.
Thanks nonetheless!
Solution 2
You can check status of the result with result.getStatus().getStatusMessage()
. Log this message or debug your result Status and it should indicate issue. Status
has also getResolution()
method that provides pending intent that should resolve your failure (firstly check if resolution is available with calling hasResolution()
, which returns true
if it can handle it for you).
Solution 3
Try changing GSO by :
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
Hope this helps !
Scrashdown
Student in computer science, mostly interested in programming in C and Scala.
Updated on June 17, 2022Comments
-
Scrashdown almost 2 years
First of all, I have to say I'm very very new to Android development so forgive me if I overlook something obvious.
For a university project, I have to create an app that first authenticates users via their Google Account using Firebase. I first followed the instructions I found here.
For a start, I copy pasted this code from Firebase Tutorial. Everything seems to be working, except for one thing :
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "------------------ onActivityResult ------------------"); super.onActivityResult(requestCode, resultCode, data); // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); if (requestCode == RC_SIGN_IN) { GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); if (result.isSuccess()) { Log.d(TAG, "------------------ googleSignInSuccess ------------------"); // Google Sign In was successful, authenticate with Firebase GoogleSignInAccount account = result.getSignInAccount(); firebaseAuthWithGoogle(account); // Start menu activity once the user has been logged in Intent intent = new Intent(this, MenuActivity.class); startActivity(intent); } else { Log.d(TAG, "------------------ googleSignInFailure ------------------"); // Google Sign In failed, update UI appropriately // [START_EXCLUDE] //Log.d(TAG, result.getStatus().getStatusMessage()); updateUI(null); // [END_EXCLUDE] } } }
Here,
result.isSuccess() == false
. So I think the Google authentication fails for some reason I cannot understand. I am sure I entered the right password, I also enabled Google Account authentication in my app's Firebase Console.Thank you very much in advance if you can help me.
EDIT : To be more precise, the first time I run the program on my emulator (or after each time I wipe data from it), I have to enter my Google credentials in the dedicated Google login activity that pops up. This works fine and the same activity seems to successfully authenticate me. However after that,
result.isSuccess()
is still false and I don't understand why. -
Scrashdown over 7 yearsI tried your solution and I am able to get the status message, however printing it in the IDE's terminal using Log.d (the only way that I know of so far) crashes my app. Furthermore, the hasResolution() method returns false.
-
frankelot almost 5 yearsWhere do you get this
result
? All I get back from onActivityResults are INTs onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) -
Eldhopj almost 4 yearscheck the data: Intent?