Tengo un inicio de sesión simple con firebase, pero después de una actualización, pierde el usuario. El usuario se almacena en LocalStorage, pero al actualizar también lo elimina de allí.
const loginform = document.querySelector('.loginform'); const email = loginform.email.value; const password = loginform.password.value; signInWithEmailAndPassword(auth, email, password) .then(cred => { console.log('user logged in:', cred.user) loginform.reset() setPersistence(auth, browserLocalPersistence); }) const auth = getAuth(); const user = auth.currentUser; onAuthStateChanged(auth, () => { const userplace = document.querySelector('.user') if(userplace != null){ if(user){ userplace.innerHTML = `Welcome, ${user.displayName || user.email}` }else { userplace.innerHTML = `Log in` } } })y, por supuesto, dado que no hay ningún usuario, mostrará el texto "iniciar sesión"
Firebase persiste y restaura automáticamente las credenciales de usuario al volver a cargar la aplicación o la página.
Pero su código solo maneja la situación en la que el usuario inicia sesión explícitamente. Para manejar también la restauración, eche un vistazo al primer fragmento de código en la documentación sobre cómo obtener el usuario actual :
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 // ... } });