今天早上,我开始将节点模块
rxfire
从 6.0.3 更新到 6.0.4,将 firebase
从 9.23.0 更新到 10.3.0。现在我的 Angular 应用程序无法启动。我运行 npm install [email protected]
和 npm install [email protected]
恢复到旧的 Node 模块,但错误仍然存在。我还删除了节点模块并运行 npm install
。
错误是:
FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call initializeApp() first (app/no-app).
几个 StackOverflow 页面回答了命名空间 Firebase 的这个问题,而不是模块化 Firebase。
这是我的
app.module.ts
文件:
import { NgModule } from '@angular/core';
...import lots more modules...
// AngularFire modules
import { environment } from '../environments/environment';
import { initializeApp, provideFirebaseApp } from '@angular/fire/app';
import { provideAnalytics, getAnalytics, ScreenTrackingService, UserTrackingService } from '@angular/fire/analytics';
import { provideAuth, getAuth } from '@angular/fire/auth';
import { provideFirestore, getFirestore } from '@angular/fire/firestore';
import { provideFunctions, getFunctions } from '@angular/fire/functions';
import { providePerformance, getPerformance } from '@angular/fire/performance';
@NgModule({
declarations: [
...lots of components...
],
imports: [
// Firebase modules
provideFirebaseApp(() => initializeApp(environment.firebase)),
provideAnalytics(() => getAnalytics()),
provideAuth(() => getAuth()),
provideFirestore(() => getFirestore()),
provideFunctions(() => getFunctions()),
providePerformance(() => getPerformance()),
provideStorage(() => getStorage()),
// Angular modules
BrowserModule,
CommonModule,
AppRoutingModule,
...lots more modules...
],
providers: [
...a few services...
],
bootstrap: [AppComponent]
})
export class AppModule { }
错误是说我需要将
initializeApp(environment.firebase))
放在其他一切之上。嗯,它位于 imports
的顶部。我不知道如何将其进一步提高。
initializeApp
不必位于导入的顶部,它只需位于其他 firebase provide
调用之上。除非您首先提供了 firebase 应用程序本身,否则您不能 getAuth
getFirestore
或 getAnalytics
。因此,您的导入在这方面看起来不错,但是我唯一能想到的是您实际上还没有通过 firebase 控制台创建 firebase 应用程序?您接受与它的连接吗?您是否可能更改了一些 Firebase 配置值?