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

Angular+Firebase实时数据库调用报DatabaseSnapshot无doc属性错误

问题原因

你混淆了 Firebase Realtime Database(实时数据库) 和 Cloud Firestore 的API调用规则:

  • 你当前导入的AngularFireDatabase对应实时数据库服务,返回的DatabaseSnapshot类型的payload下不存在doc属性,doc是Firestore专属的属性。
修复方案

直接把getMembers方法里的取值逻辑替换为实时数据库对应的语法即可:

  • 取节点唯一key:用a.payload.key
  • 取节点下的全量数据:用a.payload.val()

修改后的完整代码如下:

getMembers() { 
  let initialPayload = this.db.list("/members").snapshotChanges()
  .pipe(map(actions => actions.map(a => ({ 
    key: a.payload.key, 
    data: a.payload.val() 
  }) )));
  return initialPayload;
}
补充说明

如果后续你切换到Cloud Firestore服务,才需要导入AngularFirestore,使用a.payload.doc.id、a.payload.doc.data()的写法,不要和实时数据库的API混用即可解决类型报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:57:02