Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 构建画廊的最佳方式(Firestore)_Firebase_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

Firebase 构建画廊的最佳方式(Firestore)

Firebase 构建画廊的最佳方式(Firestore),firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在努力找出在CloudFireStore中存储画廊的最佳方法 每个文档都有自己的图库 Firestore结构: Collection - Document - Title - Gallery 颤振应用程序将如下所示: 屏幕1:列表=[查看文档按钮] 屏幕2(文档):[查看图库按钮] 屏幕3:[查看外部图像按钮][查看内部图像按钮] 屏幕4:根据选择显示图像 以下是我目前的选择: 在每个文档的地图中存储图像URL(使用此方法,图像在加载文档时立即可用。但我关心的是每个文档

我正在努力找出在CloudFireStore中存储画廊的最佳方法

每个文档都有自己的图库

Firestore结构:

Collection
  - Document
    - Title
    - Gallery
颤振应用程序将如下所示:

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

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

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

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

以下是我目前的选择:

  • 在每个文档的地图中存储图像URL(使用此方法,图像在加载文档时立即可用。但我关心的是每个文档的大小,这将增加屏幕1的加载时间)
  • 将图像URL存储在每个文档的子集合中(这会导致额外的查询以检索库图像吗?)
  • 将图像URL存储在“Galleries”集合中的另一个文档中,该集合包含主文档的引用字段(我关心的是,在查看gallery时,有两个对Firestore的查询需要第二次加载时间)
  • 另外:删除Firestore存储URL的基本URL以减少文档大小是一个好主意吗?(即,删除(仅使用文档字段中URL的其余部分)并在调用时以编程方式插入)


    哪种方法最有利?

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

    文档的最大大小:1 MiB(1048576字节)

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

    如果您认为单个文档大于限制,那么解决方案二将解决您的问题

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

    是的。如上所述,您将减小文档的大小。因为该url:

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

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

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

    文档的最大大小:1 MiB(1048576字节)

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

    如果您认为单个文档大于限制,那么解决方案二将解决您的问题

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

    是的。如上所述,您将减小文档的大小。因为该url:

    https://firebasestorage.googleapis.com/v0/b/test.appspot.com/
    
    始终是一个常量,您可以在代码中使用它来重新创建整个url客户端