首页 > 解决方案 > 从 Firebase 存储下载文件

问题描述

我有一个功能,当点击时从 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'
}

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

标签: reactjsfirebasefirebase-storage

解决方案


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

window.open(url,'_blank');

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


推荐阅读