You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过用户邮箱查询Firebase中对应用户发布的所有posts?

你当前的查询语句存在冗余错误,.doc()不传参数会生成一个随机的空文档引用,后续的子集合查询也完全偏离了你的数据范围,需要做如下修改:

如果你的所有帖子都存储在根级posts集合中,每个帖子对应集合内的一个文档,且文档自带email、timestamp字段,直接用下面的查询即可:

const getUserPosts = db
  .collection('posts')
  .where('email', '==', user.email)
  .orderBy('timestamp', 'desc');

额外注意事项:

  • 该查询属于组合条件查询,你需要先在Firebase控制台创建对应组合索引:索引字段为email(升序)+timestamp(降序),否则首次查询会抛出报错,报错信息内会附带一键创建对应索引的跳转入口,点击等待索引创建完成即可正常使用。
  • 如果你的实际数据结构为嵌套集合(根posts集合下每个用户文档内还有独立的子posts集合),要跨所有子集合查询对应用户的帖子,需要改用集合组查询,写法如下:
const getUserPosts = db
  .collectionGroup('posts')
  .where('email', '==', user.email)
  .orderBy('timestamp', 'desc');

内容的提问来源于stack exchange,提问作者icdeverything

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 08:45:03