能否使用多个关注键查询Firebase实时数据库获取关注用户动态?
问题解答
完全可以通过followings集合实现仅展示关注用户帖子的查询需求,具体实现逻辑如下:
- 首先获取当前登录用户的UID,查询该用户对应
followings节点下的所有数据,拿到你关注的全部用户的UID列表 - 遍历这个UID列表,逐个拉取对应用户
posts节点下的所有帖子快照 - 把收集到的所有帖子按发布时间戳做降序排序,组装后传入RecyclerView的适配器即可完成渲染
注意:Firebase实时数据库本身不支持跨节点的联合查询,无法通过单条查询语句直接拉取所有关注用户的帖子,必须走「先查关注列表、再批量查对应帖子」的逻辑。
如果你的项目用户量级不大,上面的方案完全可以正常运行;如果后续想要优化信息流加载速度,可以考虑做数据冗余优化:
- 新增一个全局
feed根节点,每个用户的UID对应一个子节点,用户发布新帖子时,自动把帖子内容写入所有关注该用户的人的feed子节点中 - 用户打开信息流时直接查询自己对应的feed节点即可,查询效率会高很多,只需要额外处理用户关注/取关时的feed节点数据同步逻辑即可。
内容的提问来源于stack exchange,提问作者yuri yuna
相关产品推荐
相关产品推荐

