获取firestore中每个帖子的用户喜欢和总喜欢的所有帖子列表
Posted
技术标签:
【中文标题】获取firestore中每个帖子的用户喜欢和总喜欢的所有帖子列表【英文标题】:Getting list of all posts with user like and total likes for each post in firestore 【发布时间】:2018-07-27 00:13:42 【问题描述】:此问题与查询 firestore 和实现点赞系统的最佳方法以及计算 firestore 中每个帖子的点赞数有关。
假设我们有称为帖子、喜欢、cmets、主题标签的集合。有这样的json结构。
posts:[ likes [
postId:id postId:,
createdAt:date userId,
title:string, collectionType:'posts',
description,string likedAt:date
updatedAt,date ]
createdUser:userId
updatedUser:userId,
]
comments:[ hashtags []
postId,
userComments:[
userId:,
comment:'',
commentedAt:''
replies:[]
]
使用用户 cmets 实现类似系统的最佳方法是什么 以及对每个改进的评论的嵌套回复 当我们拥有数百万用户和帖子时的效率和性能。
查询所有帖子点赞数和点赞数是否登录用户 喜欢每个帖子以及 cmets 和 cmets 计数,每个帖子都获取回复 如果可以,请发表评论。
我的方法适用于 firestore 吗?或任何最好的数据建模 也可以设计。
我们是否需要将主题标签存储在同一集合中的单独集合中 即在创建帖子时,在带有主题标签数组的帖子对象内。
我是firestore的新手,我想学习在firestore中查询数据。 根据我对 mongodb 的了解,我想在 firestore 中进行探索。请在我的问题案例中帮助我。非常感谢任何建议或指导。
谢谢
【问题讨论】:
【参考方案1】:我建议您创建一个名为 comments
的 posts
子集合,并将每个帖子的 cmets 放在帖子文档中。您可以对 cmets 的 cmets 执行相同的操作。您可以创建comments
子集合的子集合,也称为comments
。当可以在所有子集合中查询 cmets 时,您将能够轻松地在单个查询中获取所有这些数据。
在您的likes
集合文档中,我将更改userId
字段并将其替换为createdUserId
和likedUserId
。然后您可以查询特定用户的帖子的所有喜欢或用户的所有喜欢。
这完全适合 Cloud Firestore
您应该有一个主题标签的集合。您还需要将帖子中使用的主题标签存储在 map of values 中,以允许查询。
【讨论】:
哇,这消除了心中的一些困惑和疑虑。通过特定的likedUserId查询帖子时的一件事,我们如何获取用户喜欢的所有帖子?我们是否需要通过匹配 postId 将帖子复制到喜欢或从帖子集合中获取? 您可以将帖子复制到likes
收藏。但是,每当更新原始帖子时,您都需要运行云函数来更新副本。获取喜欢列表,然后从posts
集合中获取帖子(一个接一个)将非常慢。如果您的帖子有标题,您可以复制标题,然后允许用户通过选择它来阅读他们喜欢的任何帖子。以上是关于获取firestore中每个帖子的用户喜欢和总喜欢的所有帖子列表的主要内容,如果未能解决你的问题,请参考以下文章