3

I'm trying to build an app that uses Google sign in, but I get unresolved references errors for GoogleIdTokenCredential, GoogleIdTokenParsingException, and GetGoogleIdOption in this code:

coroutineScope.launch {
    try {
        // Call to get credentials
        val result = credentialManager.getCredential(context, request)
        val credential = result.credential
        val googleIdTokenCredential = GoogleIdTokenCredential.createFrom(credential.data)
        val googleIdToken = googleIdTokenCredential.idToken

        // Pass the token to the ViewModel
        loginViewModel.registerUserWithGoogleId(username, password, googleIdToken)

    } catch (e: GetCredentialException) {
        Toast.makeText(context, e.message, Toast.LENGTH_SHORT).show()
    } catch (e: GoogleIdTokenParsingException) {
        Toast.makeText(context, e.message, Toast.LENGTH_SHORT).show()
    }
}

and this code

@Provides
@Singleton // Ensure a single instance is used throughout the app
fun provideGoogleIdOption(): GetGoogleIdOption {
    val rawNonce = UUID.randomUUID().toString()
    val bytes = rawNonce.toByteArray()
    val md = MessageDigest.getInstance("SHA-256")
    val digest = md.digest(bytes)
    val hashedNonce = digest.fold("") { str, it -> str + "%02x".format(it) }

    return GetGoogleIdOption.Builder()
        .setFilterByAuthorizedAccounts(false)
        .setServerClientId("MY_CODE")
        .setNonce(hashedNonce)
        .build()
}

Android gives me the option to add the dependencies and import, like in the picture I added.

enter image description here

But if I press on the suggestion, nothing happens. And if I try to add manually the dependencies that I have copy-pasted from the android developers page (https://developer.android.com/identity/sign-in/credential-manager-siwg), I get this error when I build my project

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

These are the dependencies I have copied in my code:

implementation("androidx.credentials:credentials:1.3.0")
implementation("androidx.credentials:credentials-play-services-auth:1.3.0")

implementation("com.google.android.libraries.identity.googleid:googleid:1.3.0")

I have invalidated cache and restarted and cleaned the project, but I still get the same errors. So what must I do to make the dependencies from the documentation work in order to be permit my users to sign in with Google?

1 Answer 1

6

Use the correct version for googleid library which is 1.1.1

implementation("com.google.android.libraries.identity.googleid:googleid:1.1.1")
Sign up to request clarification or add additional context in comments.

3 Comments

I changed it to "implementation("com.google.android.libraries.identity.googleid:googleid:1.1.1")" but I still have the same errors.
@Deusnominus for me it's working. Maybe try with some older version.
you saved me man.thank you

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.