Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将多个数据上载到Firebase Store而不复制_Javascript_Reactjs_Firebase_Firebase Storage - Fatal编程技术网

Javascript 如何将多个数据上载到Firebase Store而不复制

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

我在谷歌上搜索过如何在firebase上发送和获取多个数据。 但是没有一个为我工作。其中一些工作方式与我的代码非常相似。 我的代码上载多个数据。但它上传了两份。 我想做的是分别上传不同的数据。 请让我知道我必须修改的内容


这是我的代码。

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);
})       
}))
}
上传