@angular/fire中找不到AngularFireModule与AngularFireDatabaseModule问题求助
问题根因
你遇到的导入报错是因为@angular/fire从v7.0.0版本开始进行了大幅重构,移除了原有的AngularFireModule、AngularFireDatabaseModule等NgModule类导出,旧版的NgModule导入方式不再适配新版本。
解决方案
这里提供两种可选方案,可根据项目需求选择:
方案1:适配v7.x版本新逻辑(推荐长期使用)
方式A:使用兼容层沿用旧写法
如果不想修改原有业务代码逻辑,可以直接从compat兼容路径导入对应模块:
// 修改导入路径即可,原有模块使用逻辑不变 import { AngularFireModule } from '@angular/fire/compat'; import { AngularFireDatabaseModule } from '@angular/fire/compat/database';
之后在AppModule的imports数组中按原有逻辑注册即可正常使用。
方式B:使用新版API
v7.x版本改用提供器(Provider)方式注册依赖,无需导入NgModule:
- 首先导入新的API:
import { provideFirebaseApp, initializeApp } from '@angular/fire/app'; import { provideDatabase, getDatabase } from '@angular/fire/database';
- 在AppModule的providers数组中注册依赖:
@NgModule({ // ...其他配置 providers: [ // 替换为你自己的Firebase配置对象 provideFirebaseApp(() => initializeApp({ apiKey: "xxx", authDomain: "xxx", databaseURL: "xxx", projectId: "xxx", storageBucket: "xxx", messagingSenderId: "xxx", appId: "xxx" })), provideDatabase(() => getDatabase()) ] }) export class AppModule { }
方案2:降级到适配Angular12的v6.x版本
如果不想适配新版API,可以直接降级到兼容旧写法的版本:
- 先卸载现有版本:
npm uninstall @angular/fire firebase
- 安装匹配的版本:
npm install @angular/fire@6.1.5 firebase@8.10.0
安装完成后原有导入语句无需任何修改即可正常运行。
内容的提问来源于stack exchange,提问作者Corey
相关产品推荐
相关产品推荐

