我遇到一种情况,在Firebase Storage中,用户将其头像存储到/users/{uid}.jpg
如果我随后使用Storage API获取下载URL并显示图像,则由于第一个请求没有被缓存,最终导致发出第一个请求非常缓慢。
因此,我的解决方案是在用户上传图像时获取DownloadURL并将其存储在Firebase中,以允许客户端图像提供者自动缓存图像,从而大大加快加载速度。
但是,这种解决方案存在一个问题。
如果用户替换其头像,则旧链接将断开,而不是更新。我相信这是因为每次出于安全原因上载某些东西时都会生成一个新令牌,但这对我没有好处。
所以我的问题是双重的:
1)我如何允许用户将化身上传到专用于他们的路径(例如/users/{uid}.jpg
)上,获得可以由客户端缓存的裸露下载URL,并使该URL保持为即使文件在/users/{uid}.jpg
2)如果不可能,解决此问题的正常方法是什么?
答案 0 :(得分:1)
因此,无需从硬编码的URL提供服务,只需从数据存储区(或任何数据存储系统)中的更新值中检索URL。每次用户更新头像时,只需将新URL存储在数据存储中,即可在需要时查询它。
答案 1 :(得分:0)
下载网址不透明。实际URL本身的内容是系统的实现细节,不支持深入了解其内容。这些网址无法剖析或组合。
只要存储桶中发生任何更改,您都可以将storage trigger与Cloud Functions一起使用,以自动生成一个已签名的URL。