Autenticación en Flutter

¿Cuándo iniciar sesión?

Cuando el usuario inicia sesión con éxito en Google, nuevamente, se activa esa función anónima asignada al parámetro nombrado, escuchar. Allí, a la variable, loginIn, se le asigna un valor booleano dependiendo de si la variable, cuenta, es nula o no. Véase más arriba.

La variable, cuenta, por cierto, es de tipo, GoogleSignInAccount, y cuando se inicia sesión correctamente contiene la información de la cuenta de Google del usuario. Observe arriba de la función, setState (), se llama a continuación. Esto hará que se llame al build () del objeto State y, en consecuencia, se ejecute la función _buildBody (). Como puede ver en el código a continuación, si la variable, loginIn, se establece en true, entonces eso mostrará el nombre y la dirección de correo electrónico del usuario en la pantalla.

1*Uif5uNUv0n1RCE0qjrBpCg

SignInDemoState class

A continuación, verá que he cambiado un poco las cosas. La función init () se ha modificado para proporcionar ahora los dos parámetros de “manejadores de eventos”, dejando que la función de “inicio de sesión” se llame sin ningún parámetro. Esto demuestra cómo la biblioteca de clases permite llamar a signInSilently () en otro lugar (en cualquier lugar que el desarrollador quiera) dejando la función init () en initState () para inicializar.

SignInDemoState class

Mirando nuevamente los dos parámetros nombrados: listener y listen. La distinción entre ellos son sus valores de parámetros. La función, escuchar, se utiliza para iniciar sesión en Google y se le pasa el parámetro de tipo de clase, GoogleSignInAccount. La función, listener, se usa para iniciar sesión con Firebase y se le pasa el parámetro de tipo de clase, FirebaseUser. Puede ver esto a continuación con una captura de pantalla de la clase Auth y su constructor con nombre, Auth.init ().

1* hBW2OaPE6jp8yXd OAsPQ

Auth class

Por brevedad, el código que demuestra esta biblioteca de clases se presenta en un solo lugar, en la función initState (), pero no tiene que hacerse todo en la función initState (), por supuesto. Supongamos, por ejemplo, que tiene una aplicación que establece el alcance de autenticación en un lugar, y las opciones de ‘controlador de eventos’ en otro lugar, o (como verá más adelante) establece escuchas de autenticación más de una vez en muchos lugares diferentes en el código. Tiene la opción de hacerlo utilizando los configuradores de la biblioteca de clases.

Init

Comencemos nuestro recorrido por la biblioteca de la clase. Mira la lista de parámetros a continuación. ¿Que ves? Verá todos los “parámetros con nombre” que vería si usara los complementos por separado … solo que aquí se combinan. Debido a que se denominan parámetros, todos son opcionales, pero una vez que se llama a esta función, sabes una cosa: ambas instancias se han creado esos complementos. Se crean y almacenan en la variable estática respectiva resaltada a continuación. Tenga en cuenta que la biblioteca de clases en sí también se almacena en una variable estática, _esta, porque esta clase usa un constructor de fábrica.

1*5qQm6HfR5Y UY69810Ik5Q

Auth class

Dispose

La función dispose () se enumera a continuación y se llamará en la función dispose () correspondiente de un objeto State. En otras palabras, se llama cuando su aplicación está finalizando. Esta función limpia las cosas al cerrar sesión y borrar de la memoria una serie de variables “pesadas”, que ocupan mucha memoria valiosa.

1*dkCXlPmLYlm 0VXAynnLaw

Auth class

Lo que sigue es las dos suscripciones de Stream implementadas “para capturar” todos y cada uno de los eventos de autenticación que se producen al iniciar o cerrar sesión, por ejemplo. Es entonces la función privada de la biblioteca, _init (), un constructor con nombre que es llamado por el constructor de fábrica para inicializar los dos complementos a las variables estáticas, _fireBaseAuth y _googleSignIn. Puede ver el complemento “Google” inicializado allí mismo en la función, mientras que el complemento “Firebase” se inicializa más adelante en la función, _initFirebase ().

1*WTuCG6bnOPMgIar64kTPlA

Auth class

De hecho, la función, _initFireBase (), es el siguiente tramo de código que figura en la biblioteca de clases. Allí, el complemento Firebase se inicializa y se hace referencia en la variable _fireBaseAuth. Tenga en cuenta que también se asigna una referencia al complemento a una variable de instancia, _fbAuth, por lo que está disponible públicamente a través de un getter.

1*YZzh GCT3tf N5bZ22fydw

Auth class

Previous

Introducción a APIs de datos

LCR Dice – Mi 1era app flutter en PlayStore

Next