Firestore/Firebase - 为关注/关注用户帖子建模数据的方法
Posted
技术标签:
【中文标题】Firestore/Firebase - 为关注/关注用户帖子建模数据的方法【英文标题】:Firestore/Firebase - Approach to model data for followed/following user post 【发布时间】:2019-08-24 11:21:05 【问题描述】:我有一个基于 Firestore 的应用程序。该应用程序的用户可以订阅其他用户的帐户。用户可能有太多关注者和太多帖子。在一个视图中,我想查询关注某个用户的用户的帖子。现在,每个帖子都有一个字段“creatorId”。实现这一点的一种简单方法是具有 OR 子句的查询,但 firestore 不支持。我有两种方法:
为每个关注的用户创建一个查询,然后将每个结果合并为一个承诺。问题:视图应该显示分页的帖子,在这种方法中无法确定它。另外,一个用户可以关注多个用户,所以需要多次查询然后合并这些结果。
为每个帖子添加这样的地图:
followers:
follower1: true,
follower3:true,
followerX:true
...
然后进行这样的查询:where("followers." + user.id, "==", true).问题:如果一个用户有成千上万的关注者,那么关注者字段会非常大。
我的问题是:是否有其他建模方法?您必须记住,que 视图应该是分页的,并且查询应该是最佳的。
【问题讨论】:
【参考方案1】:您可以使用三个集合对其进行建模。
用户:带有汇总关注计数的基本用户数据。
users/userID
-- userInfo (any)
-- followerCount (number)
-- followedCount (number)
关系:存储用户之间的关系。
relationships/followerID_followedID
-- followerId (string)
-- followedId (string)
-- createdAt (timestamp)
帖子:存储用户创建的帖子。
posts/post_ID
-- userId (string)
-- post_info (map)
-- createdAt (timestamp)
希望对你有帮助
【讨论】:
如果我们需要从给定用户的所有关注用户中提取帖子,这将如何工作?以上是关于Firestore/Firebase - 为关注/关注用户帖子建模数据的方法的主要内容,如果未能解决你的问题,请参考以下文章
检索数据时出现 Vue/Firestore/Firebase 错误
Macos 部署目标 firestore/firebase_core
Firestore/Firebase 无法从文件夹中获取图像
插件 cloud_firestore 和 firebase_auth 阻止与 android Emulator 同步
Android - Firestore/Firebase 实时数据库“.info/connected”返回错误的连接状态