解决 Firestore 中的 Feed 和关注系统的可扩展性问题
在社交网络领域,创建可扩展的 Feed 和关注系统至关重要以确保最佳性能和用户体验。使用 Firebase 实时数据库时,大量用户关注和检索新关注者的所有帖子的限制带来了重大挑战。另一方面,Firestore 提供了更具可扩展性的解决方案。
建议的 Firestore 数据库结构
为了解决可扩展性问题,我们提出了一个包含三个顶级的架构:级别集合:
消除缩放问题
问题1:大量帖子被添加到关注者的时间线
解决方案:集合的使用使Firestore能够有效地处理大量数据。即使用户拥有大量关注者,添加新帖子也只会影响相应用户的“userPosts”集合。不会在数据库中复制任何其他数据。
问题 2: 新关注者接收来自拥有大量帖子的用户的所有帖子
解决方案: 而不是将所有帖子存储在一个位置,它们存储在每个用户的“userPosts”集合中。这使得基于游标和限制的高效查询操作成为可能。当用户向下滚动时间线时,只会分块检索最新的帖子。
其他优化
2019 年 5 月 20 日更新: 进一步优化优化性能,为每个用户的提要创建一个文档是有益的。该文档可以存储他们关注的用户最近的帖子。这种方法最大限度地减少了查询多个集合的需要,并允许更快地加载用户时间线。
此结构的优点
以上是如何使用 Firestore 为社交网络构建可扩展的订阅和关注系统?的详细内容。更多信息请关注PHP中文网其他相关文章!