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

Ionic 3(2018)从Firebase读取数据报错,求技术协助

解决AngularFire2获取数据时的TypeError问题

看起来你遇到的这个TypeError: Object(...) is not a function错误,大概率是依赖版本不兼容导致的,具体来说是AngularFire2、Firebase和RxJS的版本匹配问题。

问题根因

你当前使用的angularfire2@5.0.0-rc.9已经采用了RxJS 6.x的新语法(比如pipe操作符、Observable的新创建方式),但你的项目依赖的是RxJS 5.5.8,两者语法不兼容,就会抛出这个错误。

两种修复方案

你可以根据自己的需求选择其中一种方案:

方案1:降级AngularFire2和Firebase到兼容RxJS 5.x的版本

这是最直接的方案,不需要修改现有代码:

  1. 先卸载当前的AngularFire2和Firebase:
npm uninstall angularfire2 firebase
  1. 安装兼容RxJS 5.x的指定版本:
npm install angularfire2@5.0.0-rc.7 firebase@4.12.1 --save

方案2:升级RxJS到6.x并兼容旧代码

如果你想保留较新的AngularFire2版本,可以升级RxJS:

  1. 安装RxJS 6.x和兼容包:
npm install rxjs@6 rxjs-compat@6 --save

rxjs-compat包可以让旧的RxJS 5语法在RxJS 6环境下正常运行,你的现有代码不需要做任何修改。

额外检查项

修复版本问题后,还需要确认Firebase数据库的读取权限是否开放(测试阶段可以临时放开):
在Firebase控制台的数据库规则中,设置为:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

注意:正式上线前一定要修改为更严格的权限规则,避免数据泄露。

完成以上操作后,重新运行项目,应该就能正常获取Firebase的数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:23:52