Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firestore(Firebase)存储大列表_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firestore(Firebase)存储大列表

Firestore(Firebase)存储大列表,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我有一个关于firestore中的大列表存储的问题(使用flutter)。 我有这样一个数据库: --数据库 ------职位 ---------评论 每个帖子/评论必须存储喜欢/添加fav的用户列表 我第一次在我的收藏帖子/评论中创建了两个列表 但我知道解决方案并不好,因为文档的大小是有限的 因此,我考虑了第二种解决方案,它包括在Post/Comment集合中添加一个集合“userData”,并为每个用户创建一个包含数据的文档。这样地: 但第二个解决方案让我感到困扰。因为当用户加载帖子列表

我有一个关于firestore中的大列表存储的问题(使用flutter)。 我有这样一个数据库:

--数据库

------职位

---------评论

每个帖子/评论必须存储喜欢/添加fav的用户列表

我第一次在我的收藏帖子/评论中创建了两个列表

但我知道解决方案并不好,因为文档的大小是有限的 因此,我考虑了第二种解决方案,它包括在Post/Comment集合中添加一个集合“userData”,并为每个用户创建一个包含数据的文档。这样地:

但第二个解决方案让我感到困扰。因为当用户加载帖子列表和评论列表时,对于每个帖子/评论,我都会做一个额外的查询,以确定用户是否已经喜欢/添加fav。 因此,如果我每个帖子有50条评论,如果用户查看100条帖子,它会生成10000个请求(100*50*2),每个用户都会收到

我担心这些请求的价格不包括申请的收益

那么,第二种解决方案是推荐的解决方案吗?还有别的解决办法吗


谢谢

我会为此使用子集合,当用户浏览帖子列表时,不会显示评论列表(或只显示最新的评论)。一旦用户与帖子进行交互,然后使用

对评论集合进行分页或创建一个无限卷轴,我将使用子集合,当用户浏览帖子列表时,不显示评论列表(或仅显示最新的评论)。用户与帖子交互后,使用

对评论集进行分页或创建一个无限卷轴,谢谢您的回答。我就是这么做的。这减少了查询的数量。但是,根据用户的使用情况,仍然可能导致大量的查询。对于每个评论/帖子,我都应该额外请求一个get userData。也许这是唯一的解决办法。谢谢你的回答。我就是这么做的。这减少了查询的数量。但是,根据用户的使用情况,仍然可能导致大量的查询。对于每个评论/帖子,我都应该额外请求一个get userData。但是,这可能是唯一的解决方案。您只需要读取当前用户的
userData
文档,并检查他们的
isFav
字段,这样每个帖子/评论只需读取一个文档。还是我遗漏了什么?在代码中看到它可能会更清楚。谢谢你的回答!它需要一个请求来检索post/comment和一个请求来检索userData。因此,每个帖子/评论总共有两个请求。我可以通过仅使用一个查询检索多个post/comment来限制请求的数量,但是每个comment/post仍然需要查询userData。那么这可能是唯一的解决方案,我只是想确定一下,不是为了得到10篇文章而进行1次查询。我对get 10 post进行1次查询,对get userData进行1次查询。因此,我不执行1次查询,而是执行11次查询。您只需读取当前用户的
userData
文档,并检查其
isFav
字段,这样每个帖子/评论只需读取一个文档。还是我遗漏了什么?在代码中看到它可能会更清楚。谢谢你的回答!它需要一个请求来检索post/comment和一个请求来检索userData。因此,每个帖子/评论总共有两个请求。我可以通过仅使用一个查询检索多个post/comment来限制请求的数量,但是每个comment/post仍然需要查询userData。那么这可能是唯一的解决方案,我只是想确定一下,不是为了得到10篇文章而进行1次查询。我对get 10 post进行1次查询,对get userData进行1次查询。因此,我不是执行1个查询,而是执行11个查询。