我正在使用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浏览器中删除(未经过身份验证)
并且惊喜!! 显示此图片!
我不明白为什么要显示图像?
这是正常的吗?
谢谢!
答案 0 :(得分:4)
当您generate a download URL获取Cloud Storage for Firebase中的文件时,拥有该网址的任何人都可以下载其内容。这是设计的。该网址是“无法访问的”,因此只有实际拥有该网址的人才能看到该内容。
如果您不希望别人看到该文件,请不要共享该网址。如果URL被意外地分享给不应该有访问权限的其他人,您可以撤销允许每个人查看内容的令牌。
答案 1 :(得分:3)
据我所知,存储然后检索文件的正确方法是将文件上传到路径(文件夹/文件名),存储该路径(例如post中的字段)然后当你想要显示它时,传递存储到getDownloadURL函数的路径,它将返回一个完整的URL,可以用作img标签的src属性