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

从Web SDK迁移到模块化SDK后出现@firebase/auth内部断言错误

解决AngularFire模块化迁移后的INTERNAL ASSERTION FAILED错误

针对你把Firebase从Web SDK切换到模块化SDK后出现的INTERNAL ASSERTION FAILED: Expected a class definition错误,以下是经过验证的修复步骤:

1. 修复依赖版本兼容性

虽然@angular/fire 7.6.1和firebase 9.23.0标称兼容,但实际可能存在版本适配细节问题,建议锁定匹配的稳定版本:

  • 先卸载现有依赖:
    npm uninstall firebase @angular/fire
    
  • 重新安装指定版本:
    npm install @angular/fire@7.6.1 firebase@9.22.0
    

2. 修正AngularFire初始化配置

确保项目的初始化代码完全采用模块化语法,摒弃旧版Web SDK的写法:

  • 正确的初始化示例(在app.module.ts或独立组件的providers中):
    import { provideFirebaseApp, initializeApp } from '@angular/fire/app';
    import { getAuth, provideAuth } from '@angular/fire/auth';
    import { getFirestore, provideFirestore } from '@angular/fire/firestore';
    import { environment } from '../environments/environment';
    
    @NgModule({
      imports: [
        provideFirebaseApp(() => initializeApp(environment.firebaseConfig)),
        provideAuth(() => getAuth()),
        provideFirestore(() => getFirestore())
        // 其他Firebase服务同理
      ]
    })
    export class AppModule { }
    
  • 注意:不要使用旧版的AngularFireModule.initializeApp(),这是导致冲突的常见原因。

3. 清理缓存并重建项目

编译缓存可能残留旧版SDK的代码,引发冲突:

  • 清理依赖和锁文件:
    rm -rf node_modules package-lock.json
    npm install
    
  • 清理Angular构建缓存:
    ng cache clean
    
  • 重新构建并启动项目:
    ionic build
    ionic serve --no-open
    

4. 排查隐藏的compat导入

检查项目中是否有第三方库或自定义代码偷偷导入了firebase/compat模块,这会导致新旧SDK冲突:

  • 全局搜索项目文件:
    grep -r "compat" src/
    
  • 如果找到相关导入,替换为模块化的对应API。

5. 修正Auth服务的调用方式

确保所有Auth相关操作都使用模块化语法,避免混用旧版AngularFireAuth:

  • 正确的模块化调用示例:
    import { Auth, signInWithEmailAndPassword, user } from '@angular/fire/auth';
    import { Observable } from 'rxjs';
    
    constructor(private auth: Auth) {}
    
    // 获取当前用户的Observable
    getCurrentUser(): Observable<any> {
      return user(this.auth);
    }
    
    // 邮箱密码登录
    async login(email: string, password: string) {
      try {
        await signInWithEmailAndPassword(this.auth, email, password);
      } catch (err) {
        console.error(err);
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:26:09