¿Por qué esta función de autenticación web de Firebase 'onAuthStateChanged' ocasionalmente no se activa?
La intención de este código es usar Firebase para Web (JavaScript) y registrar automáticamente a los visitantes del sitio web como un usuario anónimo, sin embargo, si crearon una cuenta usando el correo electrónico y se ignora el inicio de sesión anónimo.
Los síntomas de este problema son:
Cuando esto sucede, las declaraciones de depuración se ven así:
cargado 4
cargado 5
cargado 6
cargado 7
cargado 8
~98% de las veces este código funciona según lo previsto, pero alrededor del 2% de las veces no funciona en absoluto y el usuario debe cerrar y volver a abrir la pestaña y no puedo entender por qué. ¿Alguien sabe lo que está mal?
console.log("loaded 4"); const analytics = getAnalytics(app); console.log("loaded 5"); const db = getFirestore(app); console.log("loaded 6"); const functions = getFunctions(app); console.log("loaded 7"); const auth = getAuth(); console.log("loaded 8"); onAuthStateChanged(auth, (user) => { console.log("initiate on auth state change") if (user) { console.log("signed is as something") fuctionToLoadStuff(); let uid = user.uid; const isAnon = user.isAnonymous; if (isAnon == true) { console.log("User is signed in anonymously as " + uid); annonUserStuff(uid); } else { console.log("User is signed into an account as " + uid); getProfile(uid); } } else { console.log("signed is as nothing"); signInAnonymously(auth) .then(() => { const uid = auth.currentUser.uid; console.log("Anon user acct created"); functionForANewAnonUser(uid); }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; console.log(errorMessage); }); } });