AngularFire@7.1.1报NullInjectorError: No provider for Firestore如何解决?
可行解决方案如下:
- 把
provideFirestore配置从懒加载的admin.module.ts移动到app.module.ts的 imports 数组中。AngularFire 新模块化 API 中provideFirestore注册的是根级 provider,放在懒加载模块中时,根注入器无法识别该 provider,若你的服务配置了providedIn: 'root',会优先从根注入器查找依赖,就会触发空注入器报错。 - 如果你需要将 Firestore 能力限定在 admin 模块范围内使用,不需要全局暴露,可以修改
ScanRepositoryService的注入配置:将providedIn: 'root'改为providedIn: AdminModule,或者在admin.module.ts的providers数组中显式声明该服务,让服务从当前懒加载模块的注入器层级查找 Firestore 依赖。 - 检查
@angular/fire版本是否和 Angular 12 兼容:Angular 12 适配的 AngularFire 版本为 7.x 分支,使用更高版本会出现 API 不兼容、注入失效的问题。 - 移除兼容层 API 避免冲突:可以先删除
AngularFirestoreModule、AngularFireModule相关的兼容层导入代码,仅保留新模块化 API 测试运行,新旧 API 同时启用如果版本适配不佳也会触发注入异常。
内容的提问来源于stack exchange,提问作者Marcell
相关产品推荐
相关产品推荐

