【问题标题】:Downloading Files from Firebase Storage从 Firebase 存储下载文件
【发布时间】:2021-10-29 08:48:09
【问题描述】:

我有一个功能,点击后会从 Firebase 存储中下载文件。我已经实现了 firebase 文档 v8 中的功能。我还应用了 cors 策略以允许下载,但问题是该文件仍未被下载并且我没有收到错误消息。 请帮助解决这个问题。 下面是我的下载功能。

const handleDownloadFile = async file => {
    try {
      const url = file.downloadURL;
      console.log(file);

      const xhr = new XMLHttpRequest();
      xhr.responseType = 'blob';
      xhr.onload = event => {
        const blob = xhr.response;
      };
      xhr.open('GET', url);
      xhr.send();
    } catch (error) {
      console.log(error.message);
    }
  };

该函数接受文件的详细信息。下面是一个示例对象,

{
  name: 'Ndov network LOGO - 400.png',
  downloadURL: 'https://firebasestorage.googleapis.com/v0/b/tki…=media&token=2680cc-4043-4676-992a-7e64fe8342f2',
  uuid: '1b1c0a4b-80a5-42d4-a698-719a26e3f281'
}

请帮助我了解为什么我没有收到任何错误并且仍然下载,无法正常工作。

【问题讨论】:

  • “文件没有被下载”是什么意思?您正在使用此代码捕获响应:const blob = xhr.response,但您没有使用该 blob 常量。

标签: reactjs firebase firebase-storage


【解决方案1】:

在来自 API 的 url 上下载文件的最简单方法是

window.open(url,'_blank');

或者您可以使用一些库来下载 blob 格式的文件,例如 https://www.npmjs.com/package/file-saver

【讨论】:

  • 谢谢。但是 window.open(url, '_blank');在浏览器的新选项卡上打开文件,对于 saveAs(url, file.name); 也是如此。但我希望通过浏览器或用户拥有的任何下载软件下载文件
猜你喜欢
  • 2023-04-01
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-20
  • 2019-12-10
  • 2017-08-22
相关资源
最近更新 更多