【发布时间】:2019-03-05 02:05:33
【问题描述】:
我正在开发一个 Flutter 应用,但我不知道哪种方式是从 Firebase 存储中存储和检索图像的最佳方式。
例如,我正在实现显示个人资料图片功能:
CircleAvatar(backgroundImage: NetworkImage(profilePictureUrl))
我从我的数据库中得到profilePictureUrl。我可以通过两种方式将其值保存在数据库中:保存其 firebase 下载 url,或保存其 firebase 路径。
案例1:保存firebase下载地址
getDownloadUrl 我得到这样的网址:
https://firebasestorage.googleapis.com/v0/b/{project}/o/{path}?alt=media&token={token}
如果我将它保存在我的数据库中,我会保留一个带有令牌的 Url。你觉得这个token迟早会过期吗?
案例2:保存firebase图片路径
如果我将图像路径保存在我的数据库中,那么在任何图像访问之前调用getDownloadUrl 都会产生开销,例如:
Firebase 存储路径值:images/users/{userId}/profile
Future<String> getProfilePictureUrl(String path) async {
var ref = _firebaseStorage.ref().child(path);
String url = (await ref.getDownloadURL()).toString();
return url.toString();
}
两难境地
使用 Firebase 存储处理图片上传和下载的最佳做法是什么?
谢谢。
【问题讨论】:
-
你有一些你已经尝试过的代码,你可以给我们看看吗?
标签: firebase flutter firebase-storage