Firestore中阵列的存储大小限制是什么?

时间:2018-12-01 07:07:07

标签: firebase google-cloud-firestore

我想知道Firestore中数组的存储大小限制是什么。我想在数组中创建数百万个索引,并希望将数据存储为JSON对象。 数组如下所示:

   [{id:1,name:'shakti',userdata:2122},
   {id:0.55,name:'shakti',userdata:2122},
   {id:1.58,name:'shakti',userdata:2122},
   {id:2.58,name:'shakti',userdata:2122},
   {id:1.5,name:'shakti',userdata:2122}];

我浏览了文档,但没有得到任何适当的指南there

2 个答案:

答案 0 :(得分:2)

对于Firestore阵列没有具体限制。该限制适用于文档,因为在Firestore中文档具有限制。因此,在文档中可以放入多少数据方面存在一些限制。根据有关usage and limits的官方文档:

  

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

如您所见,单个文档中的数据总数限制为1 MiB。当我们谈论存储文本时,您可以存储很多,但是随着数组变大,请注意此限制。

因此,只要您在此限制内存储数据,就不会有问题。如果您认为可以克服此限制,建议您将这些数据存储在集合中。在这种情况下,没有任何限制。您可以存储任意数量的文档。

答案 1 :(得分:0)

每个文档可以包含1,048,576字节的数据。此计算包括厨房水槽,其中包括文档名称中的字符数和它所在的所有集合中的字符数。因此,一个完全空白的文档中已经有一些字节了。也就是说,您总共还有1,048,576字节。

不幸的是,单个文档不可能包含具有数百万个项目的数组,因为文档本身几乎只有一百万个可用字节,并且数组中的每个项目都将消耗1个以上的字节(除非它们所有布尔值或null,这是保证消耗单个字节的唯一值)。具有两个项目(“猕猴桃”和“橙色”)的名为“ array”的数组消耗16个字节。如果数组中的每个项目都是一个包含大约这么多字符的字符串,则该数组最多可以存储25万个项目。要继续添加到该阵列,您可以创建一个溢出文档(使用单个阵列),该文档需要另外25万个项目,依此类推。这种“实用阵列”可以容纳数百万个项目。