I want to create a Google sign for my app but my result code from onActivityResult()
is 0
In my onCreate()
Method I start the function startSignInIntent()
like this:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some other stuff
view.loadUrl(myURL);
startSignInIntent();
}
This is the startSignInIntent()
private void startSignInIntent() {
GoogleSignInClient signInClient = GoogleSignIn.getClient(this,
GoogleSignInOptions.DEFAULT_SIGN_IN);
Intent intent = signInClient.getSignInIntent();
startActivityForResult(intent, RC_SIGN_IN);
}
This is the onActivityResult()
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "data : " + resultCode + " | " + data + " || " + RC_SIGN_IN + " ||| " + requestCode);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
// The signed in account is stored in the result.
GoogleSignInAccount signedInAccount = result.getSignInAccount();
} else {
String message = result.getStatus().getStatusMessage();
if (message == null || message.isEmpty()) {
Toast.makeText(this, "Login failed", Toast.LENGTH_LONG).show();
}
new AlertDialog.Builder(this).setMessage(message)
.setNeutralButton(android.R.string.ok, null).show();
}
}
This the result of the log in the function onActivityResult()
0 | Intent { (has extras) } || 2 ||| 2
After I select an account of the the pop-up where I can choose my account. I get this screen with ok but when I have that the login already failed. See photo:
Make sure to set the publishing status of your OAuth consent screen to In Production status instead of Testing status.
I've had the same bug, requestCode was always 0 (RESULT_CANCELED).
Decision was to enable google sign in in firebase console.
Firebase console -> Your project -> Authentication -> Providers -> Google -> and switch it on.
In my case link was like this
https://console.firebase.google.com/u/0/project/{PROJECT NAME}/authentication/providers
Try checking if you have the correct OAuth key properly configured for your app. According to this related SO post, the OP noticed that the Auth key is also associated with other project that create the issue.
Also you can check the following implementation of Try Sign-In for Android, for code implementation:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
// The Task returned from this call is always completed, no need to attach
// a listener.
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
handleSignInResult(task);
}
}
Also, some additional information provided by OP, you need to make sure you have signed the APK when you are testing it. See the documentation about Sign Your App for detailed information about it.
Hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With