【问题标题】:Best way to structure a gallery (Firestore)构建画廊的最佳方式(Firestore)
【发布时间】:2019-06-15 07:31:50
【问题描述】:

我正在尝试找出在 Cloud Firestore 中存储图库的最佳方式。

每个文档都有自己的画廊。

Firestore 结构:

Collection
  - Document
    - Title
    - Gallery

Flutter 应用程序如下所示:

屏幕 1: 列表 = [查看文档按钮]

屏幕 2(文档): [查看图库按钮]

屏幕 3: [查看外部图像按钮] [查看内部图像按钮]

屏幕 4:根据选择显示图像

这些是我目前的选择:

  1. 在每个文档的地图中存储图像 URL(使用此方法,图像在加载文档时立即可用。但我担心的是每个文档的大小,这会增加屏幕 1 的加载时间)
  2. 将图片 URL 存储在每个文档的子集合中(这会导致额外的查询以检索图库图片吗?)
  3. 将图像 URL 存储在“Galleries”集合中的另一个文档中,该集合然后包含对主文档的引用字段(我对此担心的是,Firestore 有两个查询,在查看图库时需要第二次加载时间)。

另外:删除 Firestore 存储 URL 的基本 URL 以减小文档大小是个好主意吗? (即,删除https://firebasestorage.googleapis.com/v0/b/test.appspot.com/(仅在文档字段中使用 URL 的剩余部分)并在调用时以编程方式插入)

哪种方法最有利?

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    在我看来,解决方案一是您可以继续使用的解决方案,但前提是您 100% 确定文档的大小不超过限制。因此,在您可以将多少数据放入文档时存在一些限制。根据usage and limits的官方文档:

    文档的最大大小:1 MiB(1,048,576 字节)

    如您所见,单个文档中的数据总量限制为 1 MiB。当我们谈论存储文本时,您可以存储几乎所有内容,但随着包含 url 的地图变大,请注意此限制。

    如果您认为单个文档超出限制,解决方案二将解决您的问题。

    另外:删除 Firestore 存储 URL 的基本 URL 以减小文档大小是个好主意吗?

    是的。如上所述,您将减小文档的大小。因为那个网址:

    https://firebasestorage.googleapis.com/v0/b/test.appspot.com/
    

    始终是一个常量,您可以在代码中使用它来重新创建整个 url 客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-21
      • 2019-04-21
      • 2023-03-04
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多