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

Firebase存储getDownloadUrl的令牌有效性

张玺
2023-03-14

我有一个关于网址中的“令牌”的问题(

https://firebasestorage.googleapis.com/v0/b/someapplication.appspot.com/o/images/sample.png?alt=media

从文档中,它说它返回一个“长寿”的下载网址https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getDownloadURL

问题是,我把下载的Url保存在FirebaseDatabase中

-chatroom
  - c1
    - m1
      -message: "Sent a photo"
      -photoUrl: downloadUrl here

据我所知,它不是终身令牌,因此在某个时间点该令牌将无效。因此,当我在ImageView中显示此url时,它将不会加载图像。

Picasso.with(context)
  .load(downloadUrl)
  .into(imageView)

我知道我可以在firebase中使用类似的东西来生成一个新的。

StorageReference sr = getReferenceFromUrl(downloadUrl)
//pseudo-code
sr.getDownloadUrl().addOnSuccessListener((Uri newUri) => {
  Picasso.with(context)
  .load(newUri)
  .into(imageView)
});

但是!这个过程有一个开销,在这个过程中总是得到一个新的下载网址。

同样,令牌的寿命有多长?还有如果不是终身令牌,应该如何正确存储下载网址?

共有1个答案

邢洋
2023-03-14

Firebase 存储令牌不会过期。

它们可能会从Firebase控制台中撤销,这将使基于它们的URL无效。

 类似资料:
  • 我在试图理解令牌在Firebase存储中是如何工作的。 每当我的web应用程序将图像上传到FS,它就会在其公共URL中添加一个令牌。问题是,每当您将同一图像文件上传到web应用程序的另一个部分时,您似乎没有得到另一个文件,而是得到了已经上传的文件url的不同令牌,从而为以前注册的图像显示呈现403错误。 有办法解决这个吗? 如果用户重复这个过程,并在应用程序的另一个部分上传相同的picture.j

  • 根据这些文档,我知道一旦我们在存储中有了firebase路径,我们就可以通过调用该路径的上的来获得下载url。我的问题是,所有文档都建议先获取下载url,然后根据这些图像下载文件数据,但是我们是否可以将这个下载url保存在文件的实时数据库中,这样我们就不必每次都调用了? 当前文件上载和下载工作流程-> 上传: 下载 更好的上载/下载工作流程-> 在暗地里做什么?给定的url是静态的吗?

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

  • 对于我们的应用程序,我们需要能够提供团体访问文件。每个用户可能拥有大量的组,因此使用“自定义令牌”解决方案是没有意义的(无论如何,这是非常尴尬的)。 我发现,Firebase的存储安全规则非常有限。主要问题是,我们将组定义保留在存储安全规则无法访问的Firestore中。 为了克服这个问题,我们决定在每个上传文件的元数据中包含一个“令牌”,组中的任何人都可以访问这个令牌。当他们下载一个文件时,他们

  • 这个问题以前被问过很多次,也被回答过很多次,但是我不知道我做错了什么。从Firebase控制台向整个应用程序发送通知可以正常工作,但如果我向单个令牌发送通知,则Firebase控制台会出现错误:"Firebase注册令牌无效。检查令牌格式” 我正在Iphone设备上测试该应用程序。 已在创建新密钥https://developer.apple.com/account/ios/authkey/ 下载

  • 我试图建立一个使用firebase数据库和存储的社交媒体应用程序。下面是预期的流量。 > 用户上传存储在当前用户文件夹中的firebase存储中的个人资料图片和存储在firebase数据库中的URL以便快速访问。(很好) 用户发表他们的想法。这样可以在数据库中保存用户信息,如邮件、用户名和配置文件图像URL。(很好)。 现在的问题是,如果一个用户更新了他或她的个人资料图片,这将覆盖firebase