Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

241
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda