【问题标题】:How to tightly link the Images/files stored on the firebase storage to the firestore fields?如何将存储在 firebase 存储上的图像/文件紧密链接到 firestore 字段?
【发布时间】:2019-02-09 01:58:21
【问题描述】:

我正在开发一个安卓应用。在该应用程序中,我将图像上传到 Firebase 存储,并将图像/文件 URL 存储到 Firestore 文档字段。 我的问题是,如果我想将数据库迁移到其他项目,这些 URL 是否仍然有效? 或告诉我如何将 firebase 存储中的图像/文件与其存储在字段中的 URL 紧密链接。 提前致谢!

【问题讨论】:

  • AFAIK,它们将是有效的,因为文件的URL 将是相同的,一个简单的方法来检查在浏览器中打开 url 它会向你显示图像,意味着它是有效的跨度>
  • 好的。但是 URL 会指向我的旧数据库,对吗?
  • 你的文件 url 永远不会指向 database 它将指向 storage 并且更改 database 不会生效
  • 如果它在同一个项目中那么正确,我认为它不是正确的方法,当您将文件上传到存储时,firebase 会为您提供文件存储的downloadUrl @987654327 @ 到你的数据库,它会在任何地方都一样
  • 好的!谢谢你的回复

标签: android firebase google-cloud-firestore firebase-storage


【解决方案1】:

指向 Cloud Storage 中文件的 URL 与它们的存储位置无关。如果您将 URL 存储到 Cloud Storage 中的文件,则只要该文件存在于 Cloud Storage 中,该 URL 就有效(对于由 admin SDK 创建的签名 URL,直到指定的过期时间)。

您可以将该 URL 存储在任何地方。存储位置与其在 Cloud Storage 产品中的有效性无关。您可以从存储该 URL 的任何位置删除该 URL,该文件将继续存在于 Cloud Storage 中。您必须从 Cloud Storage 中删除该文件才能使该 URL 无效(或手动撤销它)。

【讨论】:

  • 道格,那么这意味着如果我在同一个数据库中将位置从一个文件夹更改为另一个文件夹,那么它将不再是一个有效的 URL,对吧?
  • @RodParedes 您实际上无法更改存储中文件的位置。您只能将其复制到新位置,然后删除原始位置。任何形式的“移动”操作实际上只是为您执行此操作。那时它将是一个完全不同的对象。
【解决方案2】:

firebase文件的URL不指向firebasedatabase,它指向该位置的特定文件,最好的利用方法是存储@987654323 @ 在你的数据库中。

因此,当您访问 URL 时,它将指向存储中相同的 File,您甚至可以从控制台进行测试,在 storage -> click upload -> upload a file -> click on a file -> click on fileLocation -> Download Url 中,它将具有文件的 URL。

希望这能消除您的困惑。

【讨论】:

    猜你喜欢
    • 2019-07-24
    • 2021-10-14
    • 2020-06-15
    • 1970-01-01
    • 2021-03-14
    • 2020-04-16
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多