![]() |
1
6
问题不是搜索效率会变得很低,而是文档有限制。因此,当涉及到可以将多少数据放入文档时,有一些限制。根据官方文件 usage and limits :
如您所见,单个文档中的数据总量限制为1个MiB。当我们讨论存储文本时,可以存储很多内容,但是随着数组变大,请注意这个限制。 如果您在阵列中存储大量数据,并且这些阵列应该由许多用户更新,那么您还需要注意另一个限制。因此,每个文档每秒只能写一次。因此,如果您遇到这样一种情况:很多用户都试图同时将数据写入/更新到相同的文档中,您可能会开始看到其中一些写入失败。所以,也要注意这个限制。 正如您可能注意到的,cloudfirestore中的查询速度非常快,这是因为Firestore会自动为文档中的任何字段创建索引。
有很多帖子说,数组在CloudFireStore上不能很好地工作,因为当你有可以被多个客户端更改的数据时,很容易混淆,因为你不知道发生了什么,在哪个领域。如果我使用的是地图,而用户想要编辑几个不同的字段,甚至是完全相同的字段,我们通常知道发生了什么。在一个数组中,事情是不同的。试想一下,如果一个用户想要编辑索引0处的值,另一个用户想要删除索引0处的值,那么会发生什么情况?结果会非常不同,为什么不呢?数组越界异常。所以Firestore对数组的操作有点不同。因此,不能在特定索引处执行诸如插入、更新或删除之类的操作。但是如果您不关心将元素存储到数组中的确切顺序,那么应该使用数组。Firestore几天前添加了一些功能来添加或删除特定元素,但前提是不关心它们的确切位置。看到了吗 here 正式文件。
也不用担心 slow query 在Firestore。 |
![]() |
Murilo · Jetpack编写导航栏项目图标 4 月前 |
![]() |
KolaYAndr · 活动RESULT_OK似乎从未发生过 4 月前 |
![]() |
psycho_pat · Android应用程序中的权限 5 月前 |
|
FarazFiroz · 如何将argb转换为描述性文本颜色 5 月前 |
![]() |
Daniel · Unity Android游戏支持的设备数量太少 5 月前 |