3

I'm using FireBase on my Android app and I followed the documents on FireBase to add logins with Google IDs.
No errors appear in the console window and the app runs well.
However, exceptions continue to occur in the try/catch syntax. What's the problem? First of all, I downloaded and put in the goodservice.json file and added SHA-1. Below is my code.

private FirebaseAuth mAuth;
private GoogleSignInClient mGoogleSignInClient;
SignInButton signInButton;


 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

   signInButton=findViewById(R.id.googlelogin);
   signInButton.setOnClickListener(onClickListener);


    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build();

    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
    mAuth = FirebaseAuth.getInstance();}


View.OnClickListener onClickListener = new View.OnClickListener() {
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.loginButton:
                login();
                break;
            case R.id.registerButton:
                myStartActivity(RegisterActivity.class);
                break;
            case R.id.resetButton:
                myStartActivity(PasswordResetActivity.class);
                break;
            case R.id.googlelogin:
                Intent signInIntent = mGoogleSignInClient.getSignInIntent();
                startActivityForResult(signInIntent, RC_SIGN_IN);

        }
    }
};

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) {
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        try {
            // Google Sign In was successful, authenticate with Firebase
            GoogleSignInAccount account = task.getResult(ApiException.class);
            firebaseAuthWithGoogle(account);
        } catch (ApiException e) {
            // Google Sign In failed, update UI appropriately
            Log.w(TAG, "Google sign in failed", e);
            // ...
        }
    }
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
    Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());

    AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information


                        FirebaseUser user = mAuth.getCurrentUser();
                        myStartActivity(MainActivity.class);

                    } else {
                        // If sign in fails, display a message to the user.

                    }

                    // ...
                }
            });
}

Below is an error window.

2020-06-01 20:59:17.051 14338-14338/com.example.example02 W/GoogleActivity: Google sign in failed
com.google.android.gms.common.api.ApiException: 10: 
    at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@17.1.0:4)
    at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(com.google.android.gms:play-services-auth@@18.0.0:9)
    at com.example.example02.Activity.LoginActivity.onActivityResult(LoginActivity.java:121)
    at android.app.Activity.dispatchActivityResult(Activity.java:8110)
    at android.app.ActivityThread.deliverResults(ActivityThread.java:4838)
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Why is it not working?

  • 1
    Does this answer your question? [Why do I get com.google.android.gms.common.api.ApiException: 10:?](https://stackoverflow.com/questions/47437678/why-do-i-get-com-google-android-gms-common-api-apiexception-10) – Zbarcea Christian Jun 01 '20 at 13:47
  • I tried the one you found, but it didn't work.. @ZbarceaChristian – Edwards Nick Jun 01 '20 at 14:52

0 Answers0