Skip to content

I am getting com.google.android.gms.common.api.ApiException: 4: 4: #540

Open
@SUMIT0733

Description

@SUMIT0733

I am using Firebase auth to signin user with Google, and I have setup the Firebase project with proper configuration and google-services.json and add that to my android project. I have added below dependencies in my
build-gradle.kts(project) id("com.google.gms.google-services") version "4.4.1" apply false
build.gradle.kts(app)
implementation("com.google.firebase:firebase-auth:22.3.1") implementation(platform("com.google.firebase:firebase-bom:32.8.0")) implementation("com.google.android.gms:play-services-auth:21.0.0")

This is my mainactivity.ky

`
private fun signIn(){
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build()
googleSignInClient = GoogleSignIn.getClient(this, gso)
val signInIntent = googleSignInClient.signInIntent
startActivityForResult(signInIntent, SIGNIN_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == SIGNIN_CODE) {
        val task = GoogleSignIn.getSignedInAccountFromIntent(data)
        try {
            // Google Sign In was successful, authenticate with Firebase
            val account = task.getResult(ApiException::class.java)!!
            Log.d(TAG, "firebaseAuthWithGoogle:" + account.id)
            firebaseAuthWithGoogle(account.idToken!!)
        } catch (e: ApiException) {
            // Google Sign In failed, update UI appropriately
            Log.w(TAG, "Google sign in failed", e)
        }
    }
}

private fun firebaseAuthWithGoogle(idToken: String) {
    val credential = GoogleAuthProvider.getCredential(idToken, null)
    auth.signInWithCredential(credential)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInWithCredential:success")
                val user = auth.currentUser
                Toast.makeText(this, "Login Successfull", Toast.LENGTH_SHORT).show()
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInWithCredential:failure", task.exception)
                Toast.makeText(this, "Login Failed", Toast.LENGTH_SHORT).show()
            }
        }
}

This is giving me random results, I am able to log in successfully sometimes, and sometimes I am gettingcom.google.android.gms.common.api.ApiException: 4: 4: ` exception, I am not sure what is wrong, I tried everything, to add value ofdefault_web_client_id to string.xml to remove that, and invalidate and restart my projects too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions