从Firebase Storage带有下载URL的阵列无法识别每个条目

我目前正在尝试将多个图像上传到Firebase Storage并将每个下载URL存储在Firestore中。

仅供参考:images是文件数组

到目前为止,我已经完成了以下代码:

uploadImages(name,collection,images,slide) {
    const urls: { url: string,id: number }[] = [];
    for (let i = 0; i < images.length; i++) {
      const file = images[i].file;
      const path = `${name}/${new Date().getTime()}_${file.name}`;
      const ref = this.storage.ref(path);
      this.task = this.storage.upload(path,file);
      let snapshot = this.task.task.snapshot;
      this.task.snapshotChanges().pipe(
        finalize(async () => {
          const downloadUrl = await ref.getDownloadURL().toPromise();
          urls.push(downloadUrl);
          if (i === images.length - 1) {
            // urls.sort((a,b) => a.id - b.id);
            // const result = urls.map(a => a.url);
            console.log(urls);
            this.productRef.doc(name).collection('collection-colors').doc(this.ccID.toString()).update({
              [slide]: urls
            });
          }
        })
      ).subscribe(snap => snapshot = snap);
    }
}

这是一种作品,但有些图片无法上传-总是像一两个图片一样。寻找解决方案时,我尝试登录url并返回以下内容:

从Firebase Storage带有下载URL的阵列无法识别每个条目

这以某种方式包含了这个问题的答案,为什么只有一些下载URL被上传-它只能识别2个条目,但实际上只有3个!?这就是我没有得到的。是什么引起了这个问题?

在这种情况下,上传的数组只有2个而不是3个条目。

仅供参考,蓝色信息图标显示:“下面的值刚刚被评估”

zanggexing 回答:从Firebase Storage带有下载URL的阵列无法识别每个条目

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3083476.html

大家都在问