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

794
Vistas
¿Exportando una variable booleana que depende de una declaración if (React JS y Firebase)?

Estoy tratando de declarar un booleano de mi archivo de configuración firebase.js que depende de una declaración if-else que verifica si un usuario inició sesión o no.

Quiero almacenar el estado de inicio de sesión de un usuario en una variable booleana y exportar esa variable a través de diferentes componentes en mi aplicación React.

Entonces, si el usuario inició sesión, quiero que mi variable isLoggedIn sea verdadera y exporte eso. Pero quiero que el booleano isLoggedIn se actualice según el estado de inicio de sesión antes de que se exporte.

Aquí está mi archivo firebase.js

 import { initializeApp } from 'firebase/app'; import { getAuth } from "firebase/auth"; const firebaseConfig = { //private keys }; const app = initializeApp(firebaseConfig); export const auth = getAuth(app); //Problem let isLoggedIn = false; function checkLoggedInStatus() { if (auth.currentUser !== null) { //ie user is signed in isLoggedIn = true; } return isLoggedIn; } checkLoggedInStatus(); export isLoggedIn;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hay (al menos) dos problemas aquí.


Lo que sigue inmediatamente a export puede ser, entre otras cosas:

  • Una declaración seguida de un nombre de variable (p. ej. export let foo = 5; ) - esto inicializa la variable y la exporta desde el módulo en una sola línea
  • function o class - similar a la anterior
  • default , si quieres indicar que lo que estás exportando es la exportación por defecto
  • Corchetes, si está exportando identificadores que ya han sido declarados, por ejemplo, export { foo }

Pero hacer export isLoggedIn; es una sintaxis inválida: no entra en ninguna de esas categorías (ni en ninguna de las otras construcciones permitidas).


El otro problema es que es posible que la propiedad .currentUser aún no exista si la autenticación no se ha inicializado. Asegúrate de esperar a que se haga primero. Utilice la versión de observador en su lugar .

Dado que es asíncrono, tiene algunas opciones para llevar esa información al resto de su secuencia de comandos. El primero, que recomendaría, es hacer que este módulo de autenticación llame al resto de su secuencia de comandos (en otras palabras, haga de este módulo su punto de entrada, o cerca de él). Por ejemplo:

 import { initializeApp } from 'firebase/app'; import { getAuth, onAuthStateChanged } from "firebase/auth"; import { renderApp } from './renderApp'; const firebaseConfig = { //private keys }; const app = initializeApp(firebaseConfig); const auth = getAuth(app); onAuthStateChanged(auth, (user) => { if (user) { renderApp(user); } else { // No user renderApp(); } });

donde renderApp es el punto de partida para el resto de su código que depende del usuario. No puede exportar fácilmente isLoggedIn directamente desde el módulo Firebase porque se recupera de forma asíncrona: llamar a renderApp con él y luego pasar el valor es la mejor manera de hacerlo.

También puede exportar una Promesa desde este script del módulo Firebase, uno que resuelve si el usuario ha iniciado sesión o no, pero eso requerirá que todos los consumidores del módulo tengan que llamar a .then sobre el valor antes de poder usarlo. , que podría ser bastante desordenado. Es mejor usar la secuencia de comandos del módulo Firebase como punto de entrada y solo llamar al resto de la secuencia de comandos una vez que el objeto de autenticación haya terminado de cargarse.

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