Firebase存储:始终可以通过URL访问文件?

时间:2017-12-09 17:39:51

标签: firebase firebase-authentication firebase-storage

我正在使用Firebase构建一个小型网络应用。

有以下步骤:

用户连接(Firebase身份验证)

用户上传图片(Firebase存储空间)

用户可以下载或查看他的图片

<img [src]="imageFromFirebase">

firebase提供的网址如下:

https://firebasestorage.googleapis.com/v0/b/<Your API>/o/userData_YOQioOsgzUP0B0fTAa6BVK5KOxo2%2Fimages%2F-L-w7THGfT6qmX9UhLsK3.png?alt=media&token=61f6edf9-188e-4177-9ee2-34635ebc5a4a

使用此URL,我只能在连接用户时在浏览器上显示图像。

真正的问题是我复制了这个URL并将其从另一个Web浏览器中删除(未经过身份验证)

并且惊喜!! 显示此图片

我不明白为什么要显示图像?

这是正常的吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

当您generate a download URL获取Cloud Storage for Firebase中的文件时,拥有该网址的任何人都可以下载其内容。这是设计的。该网址是“无法访问的”,因此只有实际拥有该网址的人才能看到该内容。

如果您不希望别人看到该文件,请不要共享该网址。如果URL被意外地分享给不应该有访问权限的其他人,您可以撤销允许每个人查看内容的令牌。

答案 1 :(得分:3)

据我所知,存储然后检索文件的正确方法是将文件上传到路径(文件夹/文件名),存储该路径(例如post中的字段)然后当你想要显示它时,传递存储到getDownloadURL函数的路径,它将返回一个完整的URL,可以用作img标签的src属性