Buenas tardes, no se me ocurre como subir una foto (avatar) a firebase, pero para que el avatar de cada usuario sea diferente y se guarde en cada inicio de sesión de usuario. Registro de usuario a través de Firebase Authentication
const [user, loading] = useAuthState(auth); const [image , setImage] = useState(""); const storage = getStorage(); //upload function const upload = ()=>{ const storageRef = ref(storage, `usersAvatar/${image.name}`); if(image == null) return; uploadBytes(storageRef, image).then(() =>{ getDownloadURL(storageRef).then((url) => { setUrl(url); }) }) } // return <input type="file" onChange={(e)=>{setImage(e.target.files[0])}}/> <button onClick={upload}>Upload</button>Dado que utiliza esta ubicación en Cloud Storage para almacenar la imagen del usuario:
const storageRef = ref(storage, `usersAvatar/${image.name}`); Cualquier usuario que cargue la misma image.name terminará sobrescribiendo la imagen de cualquier otra persona.
Lo que querrá hacer en su lugar es basar la ubicación de carga en el UID del usuario. Así por ejemplo:
const storageRef = ref(storage, `usersAvatar/${user.uid}/${image.name}`);