Angular 12集成@angular/fire后懒加载模块调用Auth方法报错求助
遗漏配置及问题排查方案
- 最常见的错误:你在懒加载模块的业务代码中没有通过依赖注入获取Auth实例,而是手动调用
getAuth()创建了独立实例
报错的核心原因是signInWithEmailAndPassword方法需要绑定了Angular根模块注入上下文的Auth实例,手动调用getAuth()生成的实例会脱离Angular的依赖注入管理,触发该错误。
正确写法示例:import { Auth } from '@angular/fire/auth'; import { signInWithEmailAndPassword } from 'firebase/auth'; // 调用登录逻辑的组件/服务 constructor(private auth: Auth) {} async handleLogin(email: string, password: string) { const userCred = await signInWithEmailAndPassword(this.auth, email, password); // 后续业务逻辑 } - 版本不兼容问题
检查package.json中@angular/core和@angular/fire的大版本号是否完全匹配,比如Angular 16必须搭配AngularFire 16使用,跨版本会导致依赖注入链路失效。 - 调用位置脱离NgModule上下文
如果你是在路由守卫、HTTP拦截器等位置调用Firebase相关方法,需要确保对应守卫/拦截器已经在根模块或者当前懒加载模块的providers数组中声明,不能在类静态方法、普通工具函数等脱离NgModule注入范围的位置调用AngularFire封装的方法。
内容的提问来源于stack exchange,提问作者Igino Boffa
相关产品推荐
相关产品推荐

