Tengo una aplicación web hecha en vue con autenticación firebase. El problema aquí es que necesito iniciar sesión cada vez que recargo la página.
Firebase Authentication almacena de manera predeterminada las credenciales del usuario en el almacenamiento local del navegador y las restaura desde allí cuando la página se vuelve a cargar. Sin embargo, esto requiere una llamada al servidor, lo que significa que si accede a Firebase.auth().currentUser inmediatamente cuando se carga la página, es posible que aún no esté configurado.
Para evitar tener este problema, use un oyente de estado de autenticación como se muestra en el primer fragmento de la documentación sobre cómo obtener el usuario actual .
Para v8 y versiones anteriores del SDK, sería:
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 // ... } });Para v9:
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 // ... } });