在同一应用中使用Firebase与AngularFire2是否需分别初始化?
Firebase与AngularFire2初始化问题解答
嗨,我来帮你理清这个疑问~
你完全不需要分别对二者进行初始化,原因很简单:AngularFire2(现在官方更常称其为AngularFire)是Firebase官方为Angular框架打造的绑定库,它内部已经封装了Firebase JS SDK的初始化逻辑。
具体来说,当你按照AngularFire的标准方式配置实例(比如在app.module.ts中使用AngularFireModule.initializeApp()传入你的Firebase配置),这一步操作已经自动完成了Firebase原生SDK的初始化工作。如果你再单独调用Firebase原生的firebase.initializeApp()方法,反而会触发类似Firebase App named '[DEFAULT]' already exists的错误。
举个典型的正确配置示例:
// app.module.ts import { NgModule } from '@angular/core'; import { AngularFireModule } from '@angular/fire/compat'; import { AngularFirestoreModule } from '@angular/fire/compat/firestore'; import { environment } from '../environments/environment'; @NgModule({ imports: [ // 这一行就完成了AngularFire和Firebase的初始化 AngularFireModule.initializeApp(environment.firebaseConfig), AngularFirestoreModule // 按需引入其他AngularFire模块 ] }) export class AppModule { }
之后如果你需要直接使用Firebase原生SDK的API(比如调用firebase.firestore()操作数据库,或者firebase.auth()处理认证),直接调用即可,因为AngularFire已经帮你完成了基础的初始化工作。
另外要注意:确保你的AngularFire版本和Firebase JS SDK版本保持兼容,版本不匹配可能会引发一些奇怪的问题哦。
内容的提问来源于stack exchange,提问作者krv
相关产品推荐
相关产品推荐

