Tengo algunos problemas con mi implementación de Firebase, usando su FirebaseUI. En mi página login.html, inicializo mi aplicación predeterminada con mis configuraciones, pero luego, cuando soy redirigido a mi página main.html, parece que tengo que inicializar una segunda aplicación porque no puede reconocer mi primera carga. No hay problema con eso, excepto que estoy perdiendo información sobre el usuario actual que inició sesión a través de la inicialización de mi primera aplicación.
¿Alguien sabe cómo omitir la necesidad de rehacer la inicialización o cómo "transferir" el usuario actual que inició sesión a la segunda aplicación?
Si está cargando una nueva página, deberá reiniciar Firebase en esa nueva página, ya que no hay "memoria" en el navegador de lo que estaba activo en la página anterior. Si desea evitar esta recarga, considere crear una aplicación de una sola página, que haga que ambas pantallas formen parte de la misma página.
Firebase Authentication almacenará automáticamente las credenciales de usuario en el almacenamiento local e intentará restaurarlas en la nueva página. Sin embargo, esto requiere que llame al servidor, lo que significa que firebase.auth().currentUser normalmente no se inicializa justo cuando se carga la página. En su lugar, querrá agregar un oyente de estado de autenticación como se muestra en el primer fragmento de código en la documentación sobre cómo obtener el usuario actual .
Para la sintaxis del SDK modular v9 y superior:
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/firebase.User const uid = user.uid; // ... } else { // User is signed out // ... } });Para v8 y antes:
firebase.auth().onAuthStateChanged((user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/firebase.User var uid = user.uid; // ... } else { // User is signed out // ... } });