我是 Firebase 存储新手,想知道最佳实践是什么。 我想将图像上传到 firebase 云存储,并返回一个下载 url,然后将其存储到 firestore。下载地址是永久的吗?其他用户将从 firestore 中读取以获取下载图像的 url。
但是当我想从CloudStorage删除图像时,我只有下载网址,但没有文件路径。那我删掉它吗?
如果我存储文件路径,如何获取下载网址?
下载地址是永久的吗?
下载 URL 将一直有效,直至您撤销它。
我只有下载网址,没有文件路径。那我要删掉吗?
您可以通过调用
StorageReference
(或您平台的同等功能)从下载 URL 获取
FirebaseStorage.getReferenceFromUrl()
。
如果我存储文件路径,如何获取下载网址?
您可以使用
StorageReference
为路径创建
FirebaseStorage.getReference()
,然后调用 StorageReference.getDownloadUrl()
。
我知道这是一篇旧文章,但这就是我在 Flutter 中使用的:
final Reference storageReferenceFromUrl = FirebaseStorage.instance.refFromURL(downloadPhotoPath!);
storageReferenceFromUrl.delete();
希望这有帮助。
我花了一天时间重构整个项目,从保存下载 URL 转变为存储参考路径。想知道为什么吗?最初,我考虑的是:
但是,这种方法带来了一些问题:
因此,我将整个项目转变为仅使用存储引用。我可以根据需要使用 getDownloadUrl() 检索应用程序中的下载链接,从而无需保存两者并节省内存。此外,更新单个值比管理两个值更简单。这些是我从下载 URL 切换到存储引用时的考虑因素。我希望这能为您提供一些见解! :)