AngularFireAuth:无法读取未定义的 属性 'GoogleAuthProvider'
AngularFireAuth: Cannot read property 'GoogleAuthProvider' of undefined
我正在尝试使用 AngularFire 进行身份验证。在 ng serve
期间,任何实例化身份验证提供程序(例如 firebase.auth.GoogleAuthProvider
)的尝试都会导致崩溃。我正在做与 AngularFireAuth quickstart example 完全相同的事情。我错过了什么吗?
我的应用程序非常小:
// app.component.ts
import { Component } from "@angular/core";
import { AngularFireAuth } from '@angular/fire/auth';
import { auth } from 'firebase/app';
@Component({...})
export class AppComponent {
constructor(private afAuth: AngularFireAuth) { }
ngOnInit() {
this.afAuth.signInWithRedirect(new auth.GoogleAuthProvider());
}
}
// app.module.ts
import { AngularFireModule } from "@angular/fire";
import { AngularFireAuthModule } from '@angular/fire/auth';
...
@NgModule({
declarations: [AppComponent],
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFireAuthModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
// package.json
"dependencies": {
"@angular/core": "~9.1.4",
"@angular/fire": "^6.0.0-rc.2",
"firebase": "7.14.3",
...
},
我发现 有类似的问题,但他们没有使用 AngularFire,只是普通的 Firebase。使用 AngularFire,我认为我不应该在 index.html.
中手动包含 Firebase 脚本
我找到了真正的解决方案。 "angular-auth-firebase"
必须在应用模块中导入 AngularFire 模块时传递给 initializeApp()
:
@NgModule({
declarations: [ ... ],
imports: [
AngularFireModule.initializeApp(environment.firebase, "angular-auth-firebase"),
AngularFireAuthModule,
...
],
...
})
export class AppModule { }
旧答案(解决方法):
我找到了解决方法 here。如果我简单地将 import "firebase/auth";
添加到 app.module.ts,一切正常,但我不确定这是否是永久修复。
我正在尝试使用 AngularFire 进行身份验证。在 ng serve
期间,任何实例化身份验证提供程序(例如 firebase.auth.GoogleAuthProvider
)的尝试都会导致崩溃。我正在做与 AngularFireAuth quickstart example 完全相同的事情。我错过了什么吗?
我的应用程序非常小:
// app.component.ts
import { Component } from "@angular/core";
import { AngularFireAuth } from '@angular/fire/auth';
import { auth } from 'firebase/app';
@Component({...})
export class AppComponent {
constructor(private afAuth: AngularFireAuth) { }
ngOnInit() {
this.afAuth.signInWithRedirect(new auth.GoogleAuthProvider());
}
}
// app.module.ts
import { AngularFireModule } from "@angular/fire";
import { AngularFireAuthModule } from '@angular/fire/auth';
...
@NgModule({
declarations: [AppComponent],
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFireAuthModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
// package.json
"dependencies": {
"@angular/core": "~9.1.4",
"@angular/fire": "^6.0.0-rc.2",
"firebase": "7.14.3",
...
},
我发现
我找到了真正的解决方案。 "angular-auth-firebase"
必须在应用模块中导入 AngularFire 模块时传递给 initializeApp()
:
@NgModule({
declarations: [ ... ],
imports: [
AngularFireModule.initializeApp(environment.firebase, "angular-auth-firebase"),
AngularFireAuthModule,
...
],
...
})
export class AppModule { }
旧答案(解决方法):
我找到了解决方法 here。如果我简单地将 import "firebase/auth";
添加到 app.module.ts,一切正常,但我不确定这是否是永久修复。