Javascript 如何将多个数据上载到Firebase Store而不复制
我在谷歌上搜索过如何在firebase上发送和获取多个数据。 但是没有一个为我工作。其中一些工作方式与我的代码非常相似。 我的代码上载多个数据。但它上传了两份。 我想做的是分别上传不同的数据。 请让我知道我必须修改的内容Javascript 如何将多个数据上载到Firebase Store而不复制,javascript,reactjs,firebase,firebase-storage,Javascript,Reactjs,Firebase,Firebase Storage,我在谷歌上搜索过如何在firebase上发送和获取多个数据。 但是没有一个为我工作。其中一些工作方式与我的代码非常相似。 我的代码上载多个数据。但它上传了两份。 我想做的是分别上传不同的数据。 请让我知道我必须修改的内容 这是我的代码。 const [file, setFile] = useState([]); function handleChange(e) { for (let i = 0; i < e.target.files.length; i++) { const new
这是我的代码。
const [file, setFile] = useState([]);
function handleChange(e) {
for (let i = 0; i < e.target.files.length; i++) {
const newFile = e.target.files[i];
setFile(newFile);
}
}
function uploadImageAsPromise() {
Promise.all(
[file].map((file) => {
return new Promise(() => {
const uploadTask = storage.ref(`files/${file.name}`).put(file);
uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, (snapshot) => {
console.log(snapshot);
storage
.ref("files")
.child(file.name)
.getDownloadURL()
.then((url) => {
//post image inside the db
const itemObj = {
timestamp: firebase.firestore.FieldValue.serverTimestamp(),
caption: file.name,
fileUrl: url,
size: snapshot._delegate.bytesTransferred,
};
db.collection("myFiles").add(itemObj);
setUploading(false);
setOpen(false);
setFile(null);
});
})
}),
storage
.ref("files")
.child(file.name)
.getMetadata()
.then((meta) => {
console.log(meta.size);
})
}))
}
<input type="file" onChange={handleChange} multiple />
<button onClick={uploadImageAsPromise}>Upload</button>
const[file,setFile]=useState([]);
功能手柄更改(e){
for(设i=0;i{
返回新承诺(()=>{
const uploadTask=storage.ref(`files/${file.name}`).put(file);
uploadTask.on(firebase.storage.TaskEvent.STATE_已更改,(快照)=>{
控制台日志(快照);
存储
.ref(“文件”)
.child(文件名)
.getDownloadURL()
。然后((url)=>{
//在数据库中发布图像
常量itemObj={
时间戳:firebase.firestore.FieldValue.serverTimestamp(),
标题:file.name,
fileUrl:url,
大小:快照。\u delegate.ByTestTransferred,
};
db.collection(“myFiles”).add(itemObj);
设置加载(假);
setOpen(假);
setFile(空);
});
})
}),
存储
.ref(“文件”)
.child(文件名)
.getMetadata()
.然后((元)=>{
console.log(meta.size);
})
}))
}
上传