Firebase Storage的getDownloadURL()方法是否可重复使用,还是每次都需要重新生成?

5

是否将angularfire2的getDownloadURL()返回的url保存在数据库中并重复使用,而不是每次需要从Firebase Storage显示图像时执行getDownloadURL(),这是一个好做法?

如果我在组件中使用getDownloadURL(),则每次访问该组件时都会重新加载图像。我希望避免这种情况。如果我在上传图像后将url保存在数据库中,然后每次需要显示图像时都使用此url,这将解决问题。但是,也许这不是正确的做法,Firebase存储可能会在某些时候更新url。

1个回答

3

是的,你应该将从文件的StorageReference生成的downloadURL存储在数据库结构中,这样可以避免创建新文件或相同文件以获取另一个downloadURL,在此情况下,你也可以使用DatabaseReference从代码的任何位置访问此图像url并在任何地方显示它。

PS:重新生成下载链接意味着重新上传相同的图像并生成新的下载链接,在这种情况下,由于重复调用Firebase存储以存储相同的文件,因此会浪费网络资源,而且文件将被替换但你将浪费资源。只需上传一次,获取下载URL,将其存储在您的数据库中,然后在需要时检索它。


似乎 getDownloadURL() 也用于捕获错误和处理授权检查。请参见完整示例:https://firebase.google.com/docs/storage/web/download-files。你认为 getDownloadURL() 是如何替换文件的呢? - artask
仅翻译文本内容:它不会替换文件,我是指如果您重新上传文件并尝试在成功中获取下载URL,则将重新上传文件,但不一定需要上传文件即可获取下载URL,但这是一个好习惯,因为您可以将该URL存储在数据库中,然后在任何地方检索它。 - Gastón Saillén

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接