Android Kotlin: inicio de sesión en Credential Manager - coroutineScope
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)
}
}
coroutineScope
es 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
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.