# #javascript #reactjs #firebase #firebase-authentication
Вопрос:
Поэтому я сделал выбор аватара, и теперь я получаю эту ошибку, если выбираю изображение.
Он также должен отображать изображение на аватаре, но вместо этого он просто выдает мне ошибку.
Как я могу решить эту проблему и управлять ею, чтобы отобразить изображение в значке Аватара ?
Мой код:
async function handleFileInputChange(e) {
const files = e.target.files;
const file = files[0];
const storage = firebase.storage();
const usersImageRef = storage
.ref()
.child(`users/${user.uid}/profilepicture.jpg`);
const snap = await usersImageRef.put(file);
const donwloadURL = await snap.ref.getDownloadURL();
setDownloadURL(donwloadURL);
await firebase.auth().updateProfile({ photoURL: donwloadURL });
}
<input
accept="image/*"
className={classes.input}
id="contained-button-file"
multiple
type="file"
onChange={handleFileInputChange}
/>
<label>
<IconButton>
<Avatar
src="../assets/ana.png"
style={{
margin: "10px",
width: "60px",
height: "60px",
}}
/>
</IconButton>
</label>
Ошибка :
Вот как это выглядит :
Ответ №1:
updateProfile
Метод существует на User
объекте, а не на экземпляре аутентификации Firebase. Попробуйте выполнить рефакторинг функции следующим образом:
const user = firebase.auth().currentUser // <-- .currentUser
if (user) {
await user.updateProfile({ photoURL: donwloadURL });
} else {
console.log("No user logged in!")
}