当前位置: 首页 > 知识库问答 >
问题:

Firebase存储的getDownloadURL背后的目的是什么

查飞星
2023-03-14

根据这些文档,我知道一旦我们在存储中有了firebase路径,我们就可以通过调用该路径的ref上的getdownloadurl()来获得下载url。我的问题是,所有文档都建议先获取下载url,然后根据这些图像下载文件数据,但是我们是否可以将这个下载url保存在文件的实时数据库中,这样我们就不必每次都调用getdownloadurl()了?

当前文件上载和下载工作流程->

上传:

 1. upload file to storage in specific path.
 2. store path in realtime DB to persist for future downloading purposes

下载

 1. get object from realtime DB and retrieve storage path
 2. get storage object
 3. get url from getDownloadUrl() on that object
 4. download data from url

更好的上载/下载工作流程->

 1. upload file to storage in specific path.
 2. get download url from storage object 
 3. store download path in realtime DB to persist for future downloading purposes
 1. get object from realtime DB 
 2. get download url stored in object
 3. download data from download url

getDownloadURL()在暗地里做什么?给定的url是静态的吗?

共有1个答案

宗政坚白
2023-03-14

下载URL是要持久化的。客户每次打电话都是浪费时间。这在Firebase示例代码中得到了一致的说明。

 类似资料:
  • 我有一个关于网址中的“令牌”的问题( https://firebasestorage.googleapis.com/v0/b/someapplication.appspot.com/o/images/sample.png?alt=media 从文档中,它说它返回一个“长寿”的下载网址https://firebase.google.com/docs/reference/js/firebase.sto

  • 我试图在这里复制这个问题的结果。我可以对有效的数据库子级调用,但它返回的结果似乎不能设置为IMG的。这是我当前用来尝试获取下载URL的代码: 当我在代码执行后检查源代码时,被设置为。我还有一个记录结果的脚本,当它这样做时,如下所示: 奇怪的是,如果我让控制台通过调用从上面的列表中打印出一个不同的属性,例如,它会完美地打印出。每个布尔值似乎都很好,只是不是字符串或数字。 作为参考,我的存储结构看起来

  • 我正试图从现实中解决一个问题 “偶数总和” 但是我不能这样做。下面是问题。 即使是总和也是两个玩家的游戏。玩家将获得N个正整数序列并轮流进行。在每个回合中,玩家选择一个非空切片(连续元素的子序列),使得该切片中的值之和是偶数,然后删除切片并连接序列的其余部分。第一个无法做出合法举动的玩家将输掉比赛。 如果你和你的对手玩这场游戏,你想知道你是否能赢,假设你和对手都玩得很好。你先走。 写一个函数:

  • 我已经开始使用facebook和google+进行firebase登录。 https://github.com/firebase/firebase-login-demo-android/blob/master/app/src/main/java/com/firebase/samples/logindemo/mainactivity.java 在上面的代码中,什么是“firebase_url”。当我

  • 我在谷歌云存储中有1个存储桶。Firebase创建一个新的bucket,这是Firebase控制台中的默认值。我想更改默认bucket并删除firebase创建的bucket。我如何在谷歌云存储中找到我的存储桶的配置设置。 这是默认的bucket:

  • 我正在浏览的Java8文档,我看到了几个似乎做同样事情的方法。例如: add(E):将指定的元素追加到此列表的末尾 这三个似乎都做同样的事情。我看到和都返回布尔值,表示修改是否成功。 的文档甚至说它与相同,尽管它不返回任何内容。我想我在想为什么这么多冗余?我什么时候会选择一个而不是另一个?