我正在嘗試更改圖像并將其用作 firebase 中的用戶個人資料照片我可以將圖像上傳到存儲,但無法使用下面的代碼獲取它們的網址storage .ref("images") .child(image.name) .getDownloadURL() .then(url => { setUrl(url)})然后我想使用該 url 來更改圖像 srcconst upUserPhoto = () => {user.updateProfile({photoURL: url})} <img src={user.photoURL}/>但它不起作用..我該如何解決這個問題,有更好的方法嗎?請賜教。完整代碼import React, { useState } from 'react'import fire from "./fire"function Profilephoto({ open, children, onClose }) { const[image, setImage] = useState(null) const[url, setUrl] = useState("") const[progress, setProgress] = useState(0) const storage = fire.storage(); const user = fire.auth().currentUser if (!open) return null const asdChange = (e) => { if(e.target.files[0]) { setImage(e.target.files[0]) } } const asdUpload = () => { const uploadTask = storage.ref(`ìmages/${image.name}`).put(image) uploadTask.on( "state_changed", snapshot => { const progress= Math.round( (snapshot.bytesTransferred/snapshot.totalBytes) * 100 ) setProgress(progress) }, error => { console.log("error") }, () => { storage .ref("images") .child(image.name) .getDownloadURL() .then(url => { setUrl(url) }) } ) } const setProfile = () => { user.updateProfile({photoURL: url}) } return ( <> <div className="modalb"></div> <div className="modala"> <progress value={progress} max="100"/> <input type="file" onChange={asdChange}/> <button onClick={asdUpload}>Upload</button> </div> </> )}export default Profilephoto
如何更改圖像源?
青春有我
2023-12-14 16:39:52