Autenticación anónima con Firebase

3/21
Recursos

Vamos a implementar la autenticación anónima de Firebase Authentication para crear cuentas temporales que pueden acceder a datos protegidos por reglas de seguridad.

Para importar la librería de Firebase Authentication debes copiar y pegar el link de autenticación en la sección de dependencias del archivo build.gradle y sincronizar tu proyecto para descargar la librería para utilizarla en nuestro proyecto:

dependencies: {
        ...
        implementation 'com.google.firebase:firebase-core:16.0.7'
        implementation 'com.google.firebase:firebase-auth:16.1.0'
        ...
}

Recuerda activar el método de autenticación anónima desde la consola de Firebase para que los usuarios queden registrados y los podamos controlar.

Aportes 12

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Hola
Notar que en esta clase el instructor comete un error relativamente de novato, ya que si se nota, se está asignando el id de un textview identificado bajo el nombre de usernameTextView. No obstante, revisando los layout, noto que el mismo pertenece a activity_trader y no a activity_login.
Básicamente estamos trayendo el texto de un TextView y no un EditTex de un layout incorrecto…
A su vez, agregar que al profe le corre el código debido a que fuera de la función addOnCompleteListener tiene la siguiente línea:
"startMainActivity(“Santiago”)"
Es decir, está pasando el parámetro username manualmente y no a través del editText del layout activity_login.
Espero que el resto del curso no sea así, este tipo de detalles no deberían de ser omitidos en un curso.

Así debería de quedar el código en mi opinión:

fun onStartClicked(view: View) {

        auth.signInAnonymously().addOnCompleteListener {task ->
            if (task.isSuccessful){
               var username = username.text.toString()
                println("El USUARIO ES: ${username}") //confirmar si el usuario es correcto en consola
                startMainActivity(username)
            }else{
                showErrorMessage(view)
            }
        }


    }

Saludos

Parece que toda la ruta de aprendizaje esta vieja, me hubiera gustado hacer esto hace 2 años :c, no tendría tantos problemas

Me ha generado un error.
La funcion onStartClicked deberia quedar asi.

fun onStartClicked(view: View) {
        auth.signInAnonymously()
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    val username = username.text.toString()
                    startMainActivity(username)
                } else {
                    showErrorMessage(view)
                }
            }
    }

Aun sin estar autenticado lo lleva a la siguiente actividad?.
La razón es que el profe olvido quitar o comentar lo que estaba después del listener “startMainActivity(username)”

Para los que están llevando este curso en el 2021 les recomiendo usar view binding en lugar de kotlin extensions (Ya que están deprecated) para vincular las vistas con las clases, acá les dejo la url de la documentación oficial:
https://developer.android.com/topic/libraries/view-binding

Yo estuve batallando para agregar las referencias de firestore debido a que ya hay versiones nuevas. Les dejo en el repositorio el proyecto de acuerdo a las nuevas versiones de las librerias.

Proyecto criptotienda al 27/06/2021

Para el auth de firestore usen:
implementation 'com.google.firebase:firebase-bom:28.2.1’
implementation ‘com.google.firebase:firebase-auth-ktx’

deben tener gradle 6, y el plugin de android gradle 4.2

Bueno a mi me salio todo perfecto hasta ahora!

en el minuto 3:18 haces referencia al textView de la siguiente activity que no? a mi me arrojo error, pero ya haciendo referencia al textView de login_activity corrio correctamente.

El nombre del modulo de autenticación de Firebase es FirebaseAuth.
Saludos.

Claramente se debe hacer referencia al objeto username.text.toString() del activity_login.xml. Si surgen otros problemas posiblemente sean debido a viejas versiones de dependencias. Hay que actualizas las dependencias segun las que recomienda el IDE.

Actualmente en 2022 tube que hacer una pequeña modificación al codigo para que copilara, ya que el profesor no asigno el objeto del EditText, almenos al no asignarlo no me copilaba, adjunto codigo como me a copilado

    fun onStartClicked(view: View) {
        val username : EditText = findViewById(R.id.username)

        auth.signInAnonymously().addOnCompleteListener {task ->
            if (task.isSuccessful){
                username.text.toString()
                println("El USUARIO ES: ${username}") //confirmar si el usuario es correcto en consola
                    //startMainActivity(username)
                }else{
                    showErrorMessage(view)
                }
            }
        startMainActivity("Mario")
    }