您目前正在关注演示应用程序,我表明存在很多冲突。但您的目标是试验 Angular 和 Firebase。我建议您按照这些步骤操作。
在此之前创建一个新的 Angular 项目。
例如。
ng new my-app
现在安装 angularfire2 和 firbase:
npm install angularfire2 firebase --save
将 Firebase 配置添加到环境变量:
firebase: {
apiKey: '<your-key>',
authDomain: '<your-project-authdomain>',
databaseURL: '<your-database-URL>',
projectId: '<your-project-id>',
storageBucket: '<your-storage-bucket>',
messagingSenderId: '<your-messaging-sender-id>'
}
为AngularFireModule 和AngularFireAuthModule 设置@NgModule:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { environment } from '../environments/environment';
@NgModule({
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFireAuthModule
],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule {}
在你AppComponent 导入AngularFireAuth 和auth:
import { AngularFireAuth } from 'angularfire2/auth';
import { auth } from 'firebase';
并实现以下功能:
export class AppComponent {
constructor(public afAuth: AngularFireAuth) {
}
login() {
this.afAuth.auth.signInWithPopup(new auth.GoogleAuthProvider());
}
logout() {
this.afAuth.auth.signOut();
}
}
HTML:
<div *ngIf="afAuth.user | async as user; else showLogin">
<h1>Hello {{ user.displayName }}!</h1>
<button (click)="logout()">Logout</button>
</div>
<ng-template #showLogin>
<p>Please login.</p>
<button (click)="login()">Login with Google</button>
</ng-template>
这些步骤与他们的DOC 相同。请参考以下链接:
希望对您有所帮助!