Error on Google Sign In CredentialManager, using Jetpack Compose

53 Views Asked by At

I am trying to create a Sign In with Google Button but everytime credentialManager.getCredential is called, it gives me :

androidx.credentials.exceptions.NoCredentialException: During begin sign in, failure response from one tap: 10: Developer console is not set up correctly.

I tried resetting the SHA-1 Fingerprint, I've created both web application and android in the google cloud credential, I've used both the web app client id and android client id. I'm lost, please help


object DeveloperScreen{

    const val GOOGLE_WEB_CLIENT_ID = "xxxxxxxxxh5n94bxxxxxxxxxxx1.apps.googleusercontent.com"
//    const val GOOGLE_WEB_CLIENT_SECRET = "GxxxxxxxxCinwYDR8KQi3-wD9ugT311"
//    const val GOOGLE_ANDROID_CLIENT_ID = "3xxxxxxx80-7ja1n9nknxxxxxxxxxxxxxxxxxxxens33k.apps.googleusercontent.com"


    private suspend fun googleSignIn(context : Context) {


        val credentialManager = androidx.credentials.CredentialManager.create(context)

        val googleIdOption: GetGoogleIdOption = GetGoogleIdOption.Builder()
            .setFilterByAuthorizedAccounts(false)
            .setServerClientId(GOOGLE_WEB_CLIENT_ID)
            .build()

        Log.i("auth-google-googleIdOption", googleIdOption.toString())

        val request: GetCredentialRequest = GetCredentialRequest.Builder()
            .addCredentialOption(googleIdOption)
            .build()

        Log.i("auth-google-credentialRequest", request.toString())


        val result = credentialManager.getCredential(
            request = request,
            context = context,
        )

        Log.i("auth-google-result", result.toString())





    }



    @Composable
    public fun DeveloperScreen1(navController : NavHostController, context : Context){

        var phoneNumber by rememberSaveable { mutableStateOf("") }
        var email by rememberSaveable { mutableStateOf("")}
        var otpCode by rememberSaveable { mutableStateOf("") }

        var useEmail by rememberSaveable { mutableStateOf(false)}

        var message by rememberSaveable { mutableStateOf("")}

        val coroutineScope = rememberCoroutineScope()

        Column {


            var user : User? = getCurrentUser()

            Text(
                textAlign = TextAlign.Center,
                fontSize = 5.em,
                text = "DEV SCREEN",
                modifier = Modifier
                    .fillMaxWidth()
                    .padding(top = 10.dp)

            )

            Text(
                text = message,
                color = Color.Black
            )

            Button(
                onClick = {

                    coroutineScope.launch {

                        googleSignIn(context)

                    }
...




var screenHeight = 0.dp
var screenWidth = 0.dp

var authViewModel = AuthViewModel()



class MainActivity : ComponentActivity() {



    @RequiresApi(Q)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)


        Log.d("Initialize", "App Started")

        setContent {


            var context: Context = LocalContext.current

            Box(
                Modifier
                    .background(color = Color(0xFFBDC6CA))
                    .safeDrawingPadding()
            ) {
                MetroFCTheme {
                    MainContent(context)



                }
            }
        }

        actionBar?.hide()
        WindowCompat.setDecorFitsSystemWindows(window, false)
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
            window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
        } else {
            window.insetsController?.apply {
//                hide(WindowInsetsAndroid.Type.statusBars())
                systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
            }
        }

    }


}



@RequiresApi(Q)
@Composable
fun MainContent(
    context : Context
){

    var user by remember{ mutableStateOf<User?>(null) }

    LaunchedEffect(key1 = user) {

        refreshMenu()

    }


    LaunchedEffect(key1 = "login") {

        user = loginAnonymously()
        Log.d("DB-User", "USER LOGIN SUCCESSFUL : $user")

    }


    Log.d("DB", "2." + user.toString())




    Log.d("Initialize","Database Connected")

    val configuration = LocalConfiguration.current
    screenHeight = configuration.screenHeightDp.dp
    screenWidth = configuration.screenWidthDp.dp

    var onDashboard by remember {mutableStateOf(true)}
    var onMenu = false
    val updateStates = { dashboard: Boolean, menu: Boolean ->
        onDashboard = dashboard
        onMenu = menu
    }

    val navController = rememberNavController()


    Scaffold(

        bottomBar = {
            if(authViewModel.isLoggedIn) NavigationBar(navController = navController, onDashboard, onMenu, updateStates)

                    },
        containerColor = MaterialTheme.colorScheme.background,
        contentWindowInsets = WindowInsets(0.dp),
        modifier = Modifier.fillMaxSize()

    ) {
    innerPadding ->

        val scrollState = rememberScrollState()

        val padding = innerPadding

        NavHost(
            navController = navController,
            startDestination = if (authViewModel.isLoggedIn) Route.DEV_SCREEN else Route.DEV_SCREEN,
            modifier = Modifier
//                .verticalScroll(state = scrollState)
                .fillMaxSize()
        ) {

            composable(route = Route.DEV_SCREEN){
                DeveloperScreen1(navController, context)
            }

            composable(route = Route.DASHBOARD_SCREEN) {

                authViewModel.login(user)
                DashboardScreen()
            }

            composable(route = Route.MENU_SCREEN) {
                authViewModel.login(user)
                MenuScreen(user)
            }
        }
    }
}

Process: com.metrofriedchicken.metrofc, PID: 20630 androidx.credentials.exceptions.NoCredentialException: During begin sign in, failure response from one tap: 10: Developer console is not set up correctly. at androidx.credentials.playservices.controllers.CredentialProviderBaseController$Companion.getCredentialExceptionTypeToException$credentials_play_services_auth_release(CredentialProviderBaseController.kt:110) at androidx.credentials.playservices.controllers.BeginSignIn.CredentialProviderBeginSignInController$resultReceiver$1$onReceiveResult$1.invoke(CredentialProviderBeginSignInController.kt:93)

I've tried :

  • Deleting Keystore and make a new one ( debug and release )
  • Used the web app client id and android client id
  • Change device
  • waited a day
0

There are 0 best solutions below