首页 > 解决方案 > Firestore(Firebase) 存储大名单

问题描述

我对 Firestore 中的大列表存储有一个问题(使用颤振)。我有一个这样的数据库:

- 数据库

- - - 邮政

- - - - -评论

并且每个帖子/评论都必须存储喜欢/添加收藏的用户列表。

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

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

但是第二种解决方案让我很困扰。因为当用户加载帖子列表和评论列表时,对于每个帖子/评论,我都会做一个额外的查询来查找用户是否已经喜欢/添加了收藏。因此,如果我每个帖子有 50 条评论,并且如果用户查看 100 条帖子,它会生成 10,000 个请求(100 * 50 * 2),并且每个用户都会生成。

恐怕这些请求的价格并不能涵盖应用程序的收益。

那么,第二种解决方案是推荐的解决方案吗?还有其他解决方案吗?

谢谢

标签: firebasefluttergoogle-cloud-firestore

解决方案


我会为此使用子集合,并且在用户浏览帖子列表时根本不显示评论列表(或仅显示最新评论)。一旦用户与帖子交互,然后使用查询游标对评论集合进行分页或创建无限滚动


推荐阅读