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

wsxa1bj1  于 2023-11-21  发布在  其他
关注(0)|答案(2)|浏览(215)

我想知道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

ubof19bj

ubof19bj1#

每个Firestore文档可以包含1,048,576字节的数据,这不仅包括每个字段名称中的字符数,还包括文档本身的名称。因此,单个文档几乎不可能包含数百万项的数组,因为文档中只有不到一百万个可用字节。
一个名为fruits的字符串数组包含两个元素"kiwi""orange",根据Firestore的度量,它消耗了19字节。因此,你可以拥有一个包含数万甚至数十万水果的数组,但不是数百万水果。但在这一点上,你最好重新考虑你的数据架构,因为Firestore是专门为小文档的大集合而构建的。至于这个答案的写作,对集合的大小没有已知的限制。
但是,如果你对一个有数百万个项目的阵列很执着,而且你不喜欢大型文档,因为你不想让Firestore在文档读取时让你破产,那么你可以考虑分布式阵列,你可以在写入之前随机选择一个数组/文档,或者保留一个计数器来确定哪个数组/文档可以被写入。我并不提倡这种解决方案,但它是可以做到的。无论你选择什么,只要注意Firestore对每个文档的读写收费($),所以获取一个包含1,000个项目的数组将花费你1次读取,而获取1,000个文档将花费你1,000次读取。

vaqhlq81

vaqhlq812#

编辑:2023-22-10

现在,有Firestore Document Size Extension可以帮助您计算文档的大小。

如何运作

每次在特定位置添加新文档时(集合)在Firestore中,一个云函数将被触发,它将根据docs计算文档的大小。大小,实际上是字节数,被写在Firebase实时数据库中的特定位置。所以如果你要处理重对象,在添加更多数据之前,最好对照最大1 MiB限制检查文档的大小。

编辑:

对于Android,有一个名为FirestoreDocument-Android的库,它将帮助您检查最大1 MiB(1,048,576字节)配额。
Firestore阵列没有具体的限制。限制出现在文档的情况下,因为在Firestore中,文档有限制。因此,在文档中可以放入多少数据时会有一些限制。根据有关usage and limits的官方文档:
文档的最大大小:1 MiB(1,048,576字节)
正如你所看到的,你在一个文档中被限制为总共1 MiB的数据。当我们谈论存储文本时,你可以存储很多,但是随着你的数组变大,要小心这个限制。
所以,只要你在这个限制范围内存储数据,就不会有问题。如果你认为你可能会克服这个限制,我建议你将数据存储在一个集合中。在这种情况下,没有限制。你可以存储尽可能多的文档。

相关问题