我如何使用 google-cloud-storage 让 public 用户下载伤害表

How can i use google-cloud-storage to have public users download an injury form

当我 运行 通过本地主机单击该按钮时,它不会导致下载。我不确定为什么。

我想要的是 HTML 方面的按钮,以引起下载 docx 文件 "injury form"

从 'react' 导入 React; 从 "firebase";

导入 firebase
const Documents = () =>{


    var storage = firebase.storage();
    var docsRef = storage.ref('Documents/Injury form.docx');

    const Download = () => { 

        docsRef.getDownloadURL().then(function(url) {
        }).catch(function(error) {
            switch (error.code) {
                case 'storage/object-not-found':
                  // File doesn't exist
                  break;

                case 'storage/unauthorized':
                  // User doesn't have permission to access the object
                  break;

                case 'storage/canceled':
                  // User canceled the upload
                  break;


                case 'storage/unknown':
                  // Unknown error occurred, inspect the server response
                  break;
              }
            });

            }
return (
    <div>
        <button onClick={Download}>yoooo</button>d        
    </div>
)
}

export default Documents

我还为跨源访问 (CORS) 配置了 Cloud Storage 存储桶。如此处所述:https://firebase.google.com/docs/storage/web/download-files#cors_configuration

该功能不激活下载。它创建一个 link 到下载 URL。

您需要在函数中放置一个变量,使其等于传递给它的 URL。在这种情况下,通过 useState() 挂钩完成。

 const [download, setDownload] = useState("blank");

        var storage = firebase.storage();
        var docsRef = storage.ref('Documents/Injury form.docx');

    docsRef.getDownloadURL().then(function(url) {
        setDownload(
            url
        )

    })

然后通过

<a href={download}>the link to download it

如果使用的方法无效,可以到firebase控制台,右键点击上传到存储区的文件。从那里下载 URL 并创建一个

<a href="<your URL>"> Button </a> 

这将创建一个 link 或激活下载的按钮。

在这种情况下,允许用户下载 phisio 网站的伤害表格。