【问题标题】:Firebase : Best way to store multiple image URLsFirebase:存储多个图像 URL 的最佳方式
【发布时间】:2017-09-13 04:55:16
【问题描述】:

只是一条简短的消息,询问您如何将图像 URL 存储在 Firebase 数据库中以供以后使用。 让我解释一下:

我使用 Firebase 存储来存储图像,但将它们各自的 URL 存储在 Firebase 数据库中,与 Firebase 存储分开(正如我一直在阅读的那样,这是这样做的方法)。
因此,在 Firebase 数据库中,我有一个“ItemPictures”节点,我想在其中为每个项目存储最多 5 个图片 URL。

但我不知道存储同一个项目的多个图像 URL 的最佳方法是什么:
- 使用 push() 创建具有随机 id 的列表(然后必须在图片更新时手动删除图片的 URL)。
- 创建一个包含 5 个 URL 字符串值的“图片”对象,使其更易于定位和导航。

问题是,稍后我将需要这些 URL 来使用 5 张图片填充 View Pager。

干杯,

安迪

【问题讨论】:

  • stackoverflow.com/a/13957446/7012517 参考您的问题..!
  • 感谢您的评论。我可能忘了说上传图片、检索然后存储它们的 URL 不是问题。我的问题更多是关于如何在 Firebase 中构造这些 URL 以便于使用
  • 如果您不想访问与对象分离的图像,Hasan shaikh 的答案是最好的。对于您的解释,它似乎应该可以使用它,如果由于某种原因您在查看对象详细信息之前有一个列表,那么您可以拥有一个具有相同对象的节点,但减少数据文档有一个关于非规范化的简单示例(复制数据) firebase.google.com/docs/database/web/structure-data

标签: android firebase firebase-realtime-database


【解决方案1】:

使用 ArrayList 会更好

ArrayList<String> images = new ArrayList<>();
                images.add("img1url");
                images.add("img2url");
                images.add("img3url");
                images.add("img4url");
                images.add("img5url");

【讨论】:

    【解决方案2】:

    最简单的方法是用唯一的键存储每个图像对象,其中有五个键,值分别为 1,2,3,4,5。然后,您可以通过以下方式轻松获取具有 ID 的特定图像的所需 URL:

    firebaseSnapshot.val().ID.1;
    firebaseSnapshot.val().ID.2;
    firebaseSnapshot.val().ID.3;
    firebaseSnapshot.val().ID.4;
    firebaseSnapshot.val().ID.5;

    为了进一步提高性能,您可以索引图像 ID,因为它们的数量会越来越大。这已在以下问题中完成。

    enter link description here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多