Quiero agregar el nombre de usuario en el registro del usuario y estoy usando el siguiente código:
//Create Account With Email&Password const createUser = (email, password, username) => { return createUserWithEmailAndPassword(auth, email, password).then(() => { updateProfile(auth.currentUser, { displayName: username, }); }); };Este es mi efecto de uso en el mismo archivo js
useEffect(() => { console.log('useEffect'); const unsubscribe = onAuthStateChanged(auth, (currentUser) => { setUser(currentUser); }); return () => unsubscribe(); }, []);Este código está agregando el nombre para mostrar con éxito, pero cuando redirijo a la página de mi cuenta, el nombre para mostrar no aparece directamente y recibo una advertencia de pérdida de memoria del enrutador-dom. ¿Hay una manera más limpia y mejor de hacer esto?
Creo que es porque la página de la cuenta se carga antes de que Firebase cargue los datos de autenticación, puedes usar algo como
onAuthStateChanged(auth,(user)=>{ if(user){ getUserName = auth.currentUser.displayName; // Load the rest of the page } }en su página de usuario redirigida, suponiendo que esté utilizando el estado de autenticación correcto, que puede consultar desde aquí https://firebase.google.com/docs/auth/web/auth-state-persistence?authuser=0