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

Angular项目angularfire2报错:InjectionToken未找到及元数据版本不匹配

解决AngularFire2元数据版本不匹配及InjectionToken找不到的问题

先来看你遇到的具体错误信息:

将正在解析app.module.ts中的AppModule符号
警告:在./~/angularfire2/firebase.app.module.js 3:40-54处,“@angular/core”中未找到导出的“InjectionToken”
警告:在./~/angularfire2/angularfire2.js 4:26-40处,“@angular/core”中未找到导出的“InjectionToken”
错误:模块/opt/lampp/htdocs/admin2/node_modules/angularfire2/index.d.ts的元数据版本不匹配,找到版本4,预期版本3,正在解析/opt/lampp/htdocs/admin2/src/app/app.module.ts中的AppModule符号,正在解析/opt/lampp/htdocs/admin2/sr...中的AppModule符号的内容

这个问题本质是AngularFire2版本和你当前使用的Angular版本不兼容:

  • 元数据版本4对应Angular 5+的格式,而你的项目预期是版本3(适配Angular 4及以下),说明你安装的AngularFire2版本过高,适配的是Angular 5+,但你的Angular版本还停留在4.x或更早。
  • InjectionToken的找不到警告也印证了这一点——高版本AngularFire2依赖的Angular特性,在你当前的旧版本Angular里不存在。

下面给你两种可行的解决办法:

方案一:安装适配旧版Angular的AngularFire2(最直接)

如果不想升级Angular版本,就安装对应兼容的AngularFire2版本:

  1. 先卸载当前的AngularFire2:
    npm uninstall angularfire2 --save
    
  2. 安装适配Angular 4的指定版本:
    npm install angularfire2@4.0.0-rc.1 --save
    
  3. 同时安装兼容的Firebase版本:
    npm install firebase@4.8.0 --save
    
  4. 清理依赖缓存并重新构建项目:
    Linux/macOS环境
    rm -rf node_modules && npm install && ng serve
    
    Windows环境
    rd /s /q node_modules && npm install && ng serve
    

方案二:升级Angular到5+(适合允许升级项目的情况)

如果你的项目架构允许升级,也可以直接把Angular升级到5.x或更高版本,之后安装最新版的AngularFire2即可。不过升级过程中要注意其他第三方依赖的兼容性,建议先备份项目,再按照Angular官方的升级步骤操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:56:30