Reputation: 4365
Signing in via Google in my application gives this error:
An internal error has occurred. [ OPERATION_NOT_ALLOWED ]
I have enabled Google in the Firebase console. Permissions are correct, and I can't seem to find the problem. I'm sure this has nothing to do with my code, but if it does tell me.
SignInactivity:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.sign_in_button:
signIn();
break;
}
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
// An unresolvable error has occurred and Google APIs (including Sign-In) will not
// be available.
Log.d(TAG, "onConnectionFailed:" + connectionResult);
Toast.makeText(this, "Google Play Services error.", Toast.LENGTH_SHORT).show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
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()) {
// Google Sign In was successful, authenticate with Firebase
GoogleSignInAccount account = result.getSignInAccount();
firebaseAuthWithGoogle(account);
} else {
// Google Sign In failed
Log.e(TAG, "Google Sign In failed.");
}
}
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
Log.d(TAG, "firebaseAuthWithGooogle:" + acct.getId());
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mFirebaseAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithCredential", task.getException());
Toast.makeText(SignInActivity.this, "Authentication failed: " + task.getException(),
Toast.LENGTH_SHORT).show();
} else {
startActivity(new Intent(SignInActivity.this, MainActivity.class));
finish();
}
}
);
}
Upvotes: 17
Views: 32471
Reputation: 11
I got "Internal error has occurred" when run the project. Please make sure your emulator connect with internet. In my case my emulator didn't connect with internet. for that following these steps.(For Windows PC)
Then in emulator, switch off WiFi and switch on again. It's worked for me.
Upvotes: 1
Reputation: 293
Go to Google "https://console.developers.google.com/apis/library/" to your project and enable Identity Toolkit API
Upvotes: 0
Reputation: 255
finally I found the solution which worked for me. The fact is that even when you have setup successfully the email+password auth method you need to create a mobile app(in my case) and associate it with your project. After that FireBase will work as expected.
Upvotes: 0
Reputation: 1709
If you are signup with email and password then follow below steps.
Go to https://console.firebase.google.com/
Select your project.
Click on Authentication from menu option(Right-side menu)
Click on SIGN-IN-METHOD
Click on Email/Password and enable it.
Click on SAVE.
Upvotes: 2
Reputation: 823
Enable the SIGN-IN-METHOD method on firebase console which you are going to use or you are using in your APP.
Upvotes: 1
Reputation: 275
Than it works fine :)
Upvotes: 15
Reputation: 595
I had the same problem. I got the solution in the forum post [Google Auth] com.google.firebase.FirebaseException: An internal error has occurred.
This happened to me when I did not have the authentication method enabled in the console Firebase. When I enabled Google authentication, I got the same exception, just without [OPERATION_NOT_ALLOWED].
Upvotes: 40