我正在使用flutter创建一个共享的待办事项列表/核对表应用程序,对于数据库,我使用Firestore。用户属于一个组,并且每个组都有一个待办事项列表。每个待办事项列表都包含待办事项。
至此,todo-list是一个文档,其中包含一个带有todo-item的文档列表。例如,如果一个待办事项列表包含50个待办事项,当用户打开该待办事项列表时,我将被收取50个文档读取的费用。用户还可以使用快照订阅对任何待办事项的更改。每次更改都将作为更新和读取进行计费。
我担心的是,每次打开待办事项列表时,最初的50个文档读取将会太多。我正在考虑创建一个包含数组属性的todo-list文档,或者创建一个内部包含todo-items的平面列表。当待办事项列表打开时,我只需阅读一次文档即可收费。但是这个列表也是实时的,我现在的问题是这是什么意思?todo-list文档将与50个项目一起再次下载,还是仅下载对阵列的更改?我对这种方法的担忧是,即使对单个待办事项进行简单的更改,用户也会下载太多的数据,这是不是我错了?有没有人知道更好的方法,还是我做了这些权衡?
此外,用户在单个列表中最多只能有100个待办事项。
发布于 2021-10-03 20:18:55
您可以尝试在两者之间混合使用-也就是说,有一个包含TodoListItems集合的TodoList文档,该文档可以包含多个项目,假设您将在其中保存30个项目,在第31个项目上,您将创建一个新的TodoListItems文档并开始填充它。
这样您就不会为50个文档收费,因为您在TodoList中有50个项目,在这个每个文档30个项目的示例中,您将收取2个项目的费用。
我认为通过这种方式,您将能够拥有超过1MB限制的列表,但不会导致每个项目只有一个文档的成本。
https://stackoverflow.com/questions/68391531
复制相似问题