Saltar al contenido

Firebase Authentication no persiste en Flutter Web

Puede darse el caso de que encuentres alguna incompatibilidad con tu código o proyecto, recuerda probar siempre en un entorno de testing antes aplicar el código al trabajo final.

Solución:

El inicio de sesión se realiza automáticamente y Firebase lo gestiona, aunque de forma asíncrona. Se pueden encontrar más detalles en la documentación oficial:

https://firebase.google.com/docs/auth/web/auth-state-persistence

El truco es muy simple. Tienes que esperar al primer cambio de estado.

  static Future getFirebaseUser() async 
    await init();
    //return await auth().currentUser;
    return await auth().onAuthStateChanged.first;
  

Vuelve null si no hay un usuario registrado: https://firebase.google.com/docs/reference/js/firebase.auth.Auth.html#onauthstatechanged

Mi firebase versión:

firebase: 5.0.4 #https://pub.dartlang.org/packages/firebase

Escribí esta implementación que funciona tanto en dispositivos móviles como en la web:

  static Future getFirebaseUser() async 
    FirebaseUser firebaseUser = await FirebaseAuth.instance.currentUser();
    if (firebaseUser == null) 
      firebaseUser = await FirebaseAuth.instance.onAuthStateChanged.first;
    
    return firebaseUser;
  

Reseñas y puntuaciones del post

Finalizando este artículo puedes encontrar las aclaraciones de otros gestores de proyectos, tú igualmente tienes la libertad de dejar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *