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

Not*_*let 4 firebase firebase-authentication firebase-storage

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

有以下步骤:

用户连接(Firebase 身份验证)

用户上传图片(Firebase 存储)

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

<img [src]="imageFromFirebase">
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

有了这个 URL,我才能在用户连接时在浏览器上显示图像。

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

和惊喜!显示此图像

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

这是正常的 ?

谢谢 !

Dou*_*son 5

当您为 Cloud Storage for Firebase 中的文件生成下载 URL 时,拥有该 URL 的任何人都可以下载其内容。这是设计使然。该 URL 是“不可猜测的”,因此只有真正拥有该 URL 的人才能看到内容。

如果您不希望人们看到该文件,请不要共享 URL。如果不小心将 URL 共享给不应具有访问权限的其他人,您可以撤销允许所有人查看内容的令牌。


小智 5

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