【问题标题】:Is Firebase storage URL static?Firebase 存储 URL 是静态的吗?
【发布时间】:2017-08-29 06:07:41
【问题描述】:

我有一个联系人列表,每个联系人都有一张个人资料照片,该照片存储在 Firebase 存储中。获取图像的官方方法是使用 Firebase 存储 SDK 获取 URL,并将其设置为 img 元素中的 src。

            firebaseApp.storage().ref("profilePhotos/" + officeId + ".jpg").getDownloadURL().then(function (url) {
                this.photoUrl = url;
            }.bind(this)).catch(function (error) {
                console.log("Photo error"); // TODO: handler
            });

当我必须加载多个文件(如在联系人列表中)时,这非常麻烦。上面收到的文件 URL 是静态的吗?可以在profile信息中存入数据库直接使用吗?

谢谢

【问题讨论】:

    标签: javascript firebase firebase-realtime-database firebase-storage


    【解决方案1】:

    根据我的经验,下载网址是静态的。此外,如果您查看数据库中下载网址下方的条目,您可以看到重新创建下载网址的选项。

    将下载 url 存储在实时数据库中是跟踪这些下载 url 的好方法。我会使用 push 方法将其保存在数据库中的文件夹中。

    他们在Realtime Database docs example 中使用 .push 的方式将创建一个可以解决您的问题的存储和检索模式。

    .push 用于制作和进入,与 .key 链接以便稍后检索:

    var newPostKey = firebase.database().ref().child('posts').push().key;
    

    .once 用于在您想要的引用处读取数据,然后使用 .then

    firebase.database().ref('/users/' + userId).once('value').then(...)
    

    【讨论】:

      【解决方案2】:

      一种非常常见的模式是将文件的下载 URL 存储在实时数据库中,以便以后使用。在您选择 revoke them 之前,下载 URL 应该可以使用。

      【讨论】:

      • 太棒了,我以为会是这样。谢谢
      猜你喜欢
      • 2020-02-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多