考虑到我正在使用Cloud Firestore和React,以下哪种数据结构最适合简单的ToDo应用?
在我的React状态下,我将ToDos列表用作数组。
选项1
选项2
我猜选项2是正确的选择,对吗?谁能详细说明为什么?
使用选项1,我将立即将数组传递给状态,而不必遍历选项2中的QuerySnapshot对象。
谢谢。
答案 0 :(得分:2)
您猜对了,选择2是正确的选择,但这不是因为您会立即使数组通过以声明状态,而是因为文档有限制。因此,在文档中可以放入多少数据方面存在一些限制。根据有关usage and limits的官方文档:
文档的最大大小:1 MiB(1,048,576字节)
如您所见,单个文档中的数据总数限制为1 MiB。当我们谈论存储文本时,您可以存储很多,但是随着数组变大,请注意此限制。
如果要在数组中存储大量数据,并且这些数组应由许多用户更新,则需要注意另一个限制。因此,每个文档每秒只能写入1次。因此,如果您遇到许多用户都试图一次将数据写入/更新到同一文档的情况,那么您可能会开始发现其中一些写入操作失败。因此,也要注意此限制。
因此,将待办事项作为文档存储在集合中是最佳选择,因为没有限制。您可以存储任意数量的文档。