在没有angularfire的情况下在angular 6中初始化firebase

Jer*_*rry 2 javascript firebase angularfire angular

我想要一个通过使用AngularFire初始化firebase的项目。但是,在整个开发过程中,我并没有使用AngularFire的很多功能。我总是firebase/app在每项服务中导入,并使用诸如firebase.auth()或的相应功能firebase.database()

以此经验,我想在不使用AngularFire的情况下初始化Firebase,因为我没有使用AngularFire方法。

现在出现的问题是我找不到任何教我如何初始化Firebase的资源,当然在导入Firebase时我看到错误app.module.ts

下面是我的代码:

使用以下方法安装firebase: npm i firebase

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

import * as firebase from 'firebase';
import { environment } from '../environments/environment'; //API key is imported



@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    firebase.initializeApp(environment.firebase) //here shows the error
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

在的行中firebase.initializeApp(environment.firebase),显示错误:

Type 'App' is not assignable to type 'any[] | Type<any> | 
ModuleWithProviders<any>'.
Type 'App' is not assignable to type 'ModuleWithProviders<any>'.
Property 'ngModule' is missing in type 'App'.
Run Code Online (Sandbox Code Playgroud)

提前致谢。

dan*_*zep 5

我会说你有这个错误,因为firebase.initializeApp(environment.firebase)不是Angular Module。

我建议您在其中一项服务中进行此初始化,或者为此创建服务。

@Injectable({
    providedIn: 'root'
})
export class FirebaseService {
    constructor() {
        firebase.initializeApp(environment.firebase)
    }
}
Run Code Online (Sandbox Code Playgroud)