Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
No mostrar el contenido de la página HTML hasta que se conozca el estado de autenticación de firebase

Estoy construyendo un sitio pequeño usando HTML simple y javascript, y estoy usando Firebase para la autenticación. Cuando los usuarios van a una página determinada, me gustaría redirigirlos a otra página si han iniciado sesión. Este es el código que estoy usando para lograrlo (todas las secuencias de comandos se colocan en <head> ):

 <script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-auth.js"></script> <script> const firebaseConfig = { // ... }; firebase.initializeApp(firebaseConfig); firebase.auth().onAuthStateChanged((user) => { if (user) { window.location.href = "/feed"; } }); </script>

Esto redirige al usuario correctamente, pero el usuario ve brevemente la página destinada a usuarios no autenticados durante el tiempo que tarda Firebase en obtener el estado de autenticación y que se active la devolución de llamada onAuthStateChanged . ¿Hay alguna manera de evitar que se muestre la página HTML hasta que se llame a onAuthStateChanged?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

¿has probado async/await?

Una vez que un archivo Html se representa de arriba a abajo y no está utilizando el método async/await, html seguirá representando una vez que sea una función asíncrona.

Te recomendaría que lo pruebes así para obligar a la espera de procesamiento a la respuesta de autenticación:

 <script> const firebaseConfig = { // ... }; firebase.initializeApp(firebaseConfig); async function firebaseAuth(){ try{ const authResponse = await firebase.auth().onAuthStateChanged((user) => { window.location.href = "/feed"; }); }catch(e){ console.log(e); } }; firebaseAuth(); </script>

Puede leer más en el documento: https://www.w3schools.com/js/js_async.asp

about 4 years ago · Juan Pablo Isaza Denunciar

0

Firebase restaura automáticamente al usuario cuando se carga la página. Sin embargo, esto requiere una llamada al servidor, entre otras cosas, para verificar si la cuenta fue deshabilitada, por lo que puede llevar algún tiempo.

La solución alternativa común es almacenar su propio valor en el almacenamiento local que indica si cree que es probable que el usuario haya iniciado sesión y (si es así) redirigir a la página autenticada de inmediato.

Si/cuando el usuario alguna vez inicia sesión, tendría un oyente de estado de autenticación en esa página para redirigirlo, por lo que la mayoría de los usuarios verán el camino feliz en ese caso.

Firebaser Michael Bleigh cubrió esto en una charla en Google I/O aquí .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda