Angular集成AngularFire配置Firestore出现No provider for ka空注入错误
错误原因
该报错是Firestore导入来源不匹配导致的依赖注入失败:
- 你在
firebase.service.ts中从原生Firebase SDK包"firebase/firestore"导入Firestore,这个类没有被Angular依赖注入系统注册 - 你在AppModule中通过
provideFirestore()注册的是@angular/fire/firestore包导出的Firestore注入令牌,二者不匹配。代码打包压缩后,原生Firebase SDK的Firestore类被混淆为ka,因此控制台抛出No provider for ka!错误。 - 之前Realtime Database功能正常,是因为你注入的
Database类型从@angular/fire/database导入,和AppModule里注册的provider完全匹配。
解决方法
仅需修改firebase.service.ts的导入语句即可:
- 将
Firestore的导入路径改为@angular/fire/firestore,操作方法collection、addDoc仍可从原生SDK导入,修改后导入语句如下:
// 调整Firestore的导入来源 import { Firestore } from '@angular/fire/firestore'; import { collection, addDoc } from "firebase/firestore"; // 其余导入保持不变
- 修改完成后清除缓存重启开发服务、重新构建项目,报错即可消失。
内容的提问来源于stack exchange,提问作者Jakub Szlaur
相关产品推荐
相关产品推荐

