Firebase 带颤振的QnA应用程序:添加评论流
我正在构建一个论坛应用程序,到目前为止,我已经将数据结构化为私人帖子(在每个用户下,因为有一个部分供用户仅查看其帖子)和公共帖子(在集合“public”下,以便每个人都可以查看彼此的帖子)。现在我想实现一个评论系统。我应该如何构造数据?我应该在每个documentid下创建一个子集合“comments”(针对每个帖子),还是在firebase的用户级别创建一个集合“comments” [![用户级别'] [![收藏“公共”下]Firebase 带颤振的QnA应用程序:添加评论流,firebase,flutter,dart,google-cloud-firestore,document,Firebase,Flutter,Dart,Google Cloud Firestore,Document,我正在构建一个论坛应用程序,到目前为止,我已经将数据结构化为私人帖子(在每个用户下,因为有一个部分供用户仅查看其帖子)和公共帖子(在集合“public”下,以便每个人都可以查看彼此的帖子)。现在我想实现一个评论系统。我应该如何构造数据?我应该在每个documentid下创建一个子集合“comments”(针对每个帖子),还是在firebase的用户级别创建一个集合“comments” [![用户级别'] [![收藏“公共”下] [![在集合“public”的子集合中,documentid表示该类
[![在集合“public”的子集合中,documentid表示该类别下每个帖子的id(论坛、反馈和注释)]这是一个基于意见的问题,这意味着有不止一个解决方案。但是,我的方法与此类似,您可以修改它,或者从中获得灵感,以获得更好的解决方案:
private
(布尔值)下添加2个附加字段
)和用户
(字符串数组)postRef.where('private','==',false);
,这将帮助您始终加载非私密的帖子postRef.where('private','==',true)。where('users','array contains','UID'));
和UID
是当前登录用户查看论坛页面的UID。当您查询此帖子时,您将能够获取所有私人帖子,但只能获取数组中包含用户UID的帖子{timestamp:number,comment:string,UID:string}
。此字段将帮助您跟踪特定帖子的所有评论。但是,能够发布和阅读这些评论的用户将根据上述字段users
和private
进行控制posts/[POST\u ID]的引用进行结构化/comments/
其中POST\u ID
是为Firestore数据库中的每个文档分配的ID。然后在您的POST下,您可以完全删除它,而不是将comments
作为JSON obj数组。因此,当您根据上述查询字段查询文档时,API也会返回给您文档键(POST_ID),您可以使用它从实时数据库中查询注释。有关详细信息,请访问