【问题标题】:Efficient Firebase Storage image download [duplicate]高效的 Firebase 存储映像下载 [重复]
【发布时间】: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


【解决方案1】:

案例 1 - 下载 URL 将一直有效,直到您在控制台中手动撤销它;即它不仅会过期。见Revoking Firebase storage download urls。该 URL 被认为是“不可猜测的”。存在撤销,以便您可以在它受到损害时对其进行更改。

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

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 2017-06-23
    • 2020-06-13
    • 2020-07-10
    • 2018-10-31
    • 2016-12-28
    • 2017-08-28
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多