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

Node.js无法读取Firebase Firestore数据问题排查求助

问题根因

你看到user集合下显示为灰色的文档,是Firestore中的空父级文档(幽灵文档):这类文档本身没有存储任何字段数据,仅作为子集合pasien的路径载体存在。直接调用db.collection('user').get()时,Firestore默认只会返回有实际字段数据的文档,所以你拿到的查询结果size为0,后续遍历逻辑自然不会执行。
你的Flutter端写入功能不受影响,是因为写入操作直接指定了子集合的完整路径(user/[文档id]/pasien/[子文档id]),不管父级文档是否存在实际数据都可以正常写入。

解决方案

  • 方案一(推荐):使用集合组查询直接检索所有pasien子集合数据,跳过查询空父级文档的步骤,代码修改如下:
// 集合组查询会匹配所有名为pasien的子集合
db.collectionGroup('pasien').where('no_rm', '==', noRm).get()
.then(snapshot => {
  snapshot.forEach(pasien => {
    console.log(pasien.data());
    // 若需要获取所属user文档的ID,可通过 pasien.ref.parent.parent.id 拿到
  })
})
  • 方案二:补全父级文档的字段数据
    在Flutter端创建user下的文档时,给文档添加至少一个占位字段(例如createTime、userId等),让文档变为有实际数据的普通文档,控制台会显示为黑色,此时再调用db.collection('user').get()就能正常拿到所有user文档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:27:03