高效的火基存储映像下载



我正在开发一个 Flutter 应用程序,我不知道哪种方式是从 Firebase 存储中存储和检索图像的最佳方式。

例如,我正在实现显示个人资料图片功能:

CircleAvatar(backgroundImage: NetworkImage(profilePictureUrl))

我从数据库中获取profilePictureUrl。我可以通过两种方式将其值保存在数据库中:保存其 firebase 下载网址或保存其 firebase 路径。

案例 1:保存火力下载网址

有了getDownloadUrl我得到这种网址:

https://firebasestorage.googleapis.com/v0/b/{project}/o/{path}?alt=media&token={token}

如果我将其保存在我的数据库中,我会保留一个带有令牌的 URL。你认为这个令牌迟早会过期吗?

案例 2:保存 Firebase 图像路径

如果我将图像路径保存在我的数据库中,那么在任何图像访问之前调用getDownloadUrl的开销,例如:

Firebase 存储路径值:图片/用户/{用户 ID}/配置文件

Future<String> getProfilePictureUrl(String path) async {
var ref = _firebaseStorage.ref().child(path);
String url = (await ref.getDownloadURL()).toString();
return url.toString();
}

两难

使用 Firebase 存储空间处理图片上传和下载的最佳做法是什么?

谢谢。

情况 1 - 下载 URL 将保持有效,直到您在控制台中手动撤销它;即它不会过期。请参阅撤销 Firebase 存储空间下载网址。该网址被视为"无法猜测"。吊销存在,以便您可以在它遭到入侵时进行更改。

情况 2 - 您每次都会收到相同的 URL(您可以在控制台中检查的相同 URL ( - 当然,除非有人在控制台中手动撤销它并创建了一个新 URL。

最新更新