Android Kotlin: inicio de sesión en Credential Manager - coroutineScope

Resuelto Eduard Unruh asked hace 54 años • 1 respuestas

Estoy tratando de implementar el nuevo método de inicio de sesión, ya que el anterior es lo que sea que haya quedado obsoleto, pero los documentos de Google están, como siempre, incompletos.

Esta es la parte en la que estoy al día:

coroutineScope.launch {
    try {
        val result = credentialManager.getCredential(
            request = request,
            context = this,
        )
        handleSignIn(result)
    } catch (e: GetCredentialException) {
        handleFailure(e)
    }
}

coroutineScopees una referencia no resuelta

Estoy viendo este tutorial: https://www.youtube.com/watch?v=P_jZMDmodG4

y el chico allí simplemente hace:

val coroutineScope = rememberCoroutineScope()

y a él le funciona, pero para mí rememberCoroutineScope()también es una referencia no resuelta

¿Cómo hacer que funcione?

gracias de antemano

EDITAR:

Según la respuesta de Tenfour04, probé esto ahora:

    val credentialManager = CredentialManager.create(this)

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

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

    lifecycleScope.launch {
        whenStarted {
            try {
                val result = credentialManager.getCredential(
                    request = request,
                    context = this@GoogleLogin,
                )
                handleSignIn(result)
            } catch (e: GetCredentialException) { Log.d("pikaboo", "I love google")}
        }
    }

pero no inicia el proceso de inicio de sesión

Eduard Unruh avatar Jan 01 '70 08:01 Eduard Unruh
Aceptado

rememberCoroutineScope()es lo que usarías en un Compose Composable. Si no estás usando Compose, entonces si estás en una Actividad o Fragmento, usa lifecycleScope, y si estás en un ViewModel, usa viewModelScope.

Por lo que puedo deducir de sus otras preguntas, no está utilizando Compose y, por lo tanto, no puede utilizar correctamente @Composable. No tiene sentido. Compose es un sistema de interfaz de usuario completamente diferente a las vistas tradicionales que estás utilizando.

Tenfour04 avatar Feb 19 '2024 18:02 Tenfour04