【发布时间】:2017-01-10 15:38:11
【问题描述】:
我正在尝试了解令牌在 Firebase 存储中的工作原理。
每当我的网络应用程序将图像上传到 FS 时,它都会在其公共 URL 中添加一个令牌。问题是,每当您将相同的图像文件上传到网络应用程序的另一部分时,似乎您没有获得另一个文件,而是已经上传的文件 url 的标记不同,从而为前一个呈现 403 错误注册图像显示。
有没有办法解决这个问题?
例子:
storageRef.put(picture.jpg);
uploadTask.snapshot.downloadURL
// returns something like https://firebasestorage.googleapis.com/v0/b/<your-app>/o/picture.jpg?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e
然后该 url 会显示在 img src 内的某处。
<img src="https://firebasestorage.googleapis.com/v0/b/<your-app>/o/picture.jpg?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e">
如果用户重复该过程并在应用的另一部分上传相同的图片.jpg,而不是在 Firebase 存储中获取全新的副本,文件将被以新令牌结尾的 URL 覆盖;说 12345。
所以:
<img src="https://...picture.jpg?alt=media&token=12345"> // New upload renders fine
<img src="https://...picture.jpg?alt=media&token=09cb2927-4706..."> // But old upload breaks because of wrong url
【问题讨论】:
-
使用图片的本地缓存
-
这是一个网络应用程序,即使文件相同,每个图像都需要自己的url。
-
抱歉,我以为是移动应用
-
我没有指出这一点很糟糕。已编辑。
-
你指的是什么类型的令牌?可以加minimal code that reproduces the problem吗?这通常会澄清很多事情,并使我们能够更有效地为您提供帮助。
标签: javascript firebase firebase-storage