我正在尝试使用Firebase的AngularFire2进行Facebook身份验证。
我正在按照与本教程github.com/angular/angularfire2/blob/master/docs/Auth-with-Ionic2.md完全相同的步骤进行操作
但是由于某种原因,这是行不通的。它给了我很多提供商页面上的错误。这是我的代码。
import { Injectable } from '@angular/core';
import { Component } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import { Observable } from 'rxjs/Observable';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
@Injectable()
export class AuthService {
private authState: Observable<firebase.User>;
private currentUser: firebase.User;
constructor(public http: Http, public afAuth: AngularFireAuth) {
console.log('Hello AuthService Provider');
this.authState = afAuth.authState; //First error here.
afAuth.subscribe((user: firebase.User) => { //second here
this.currentUser = user;
});
}
get authenticated(): boolean {
return this.currentUser !== null;
}
signInWithFacebook(): firebase.Promise<any> {
return this.afAuth.auth.signInWithPopup(new firebase.auth.FacebookAuthProvider()); //third error here
}
signOut(): void {
this.afAuth.signOut();
}
displayName(): string {
if (this.currentUser !== null) {
return this.currentUser.facebook.displayName;
} else {
return '';
}
}
}
失误
Property 'authState' does not exist on type 'AngularFireAuth'.
Argument of type '(user: User) => void' is not assignable to parameter of type '(value: FirebaseAuthState) => void'.
Types of parameters 'user' and 'value' are incompatible.
Type 'FirebaseAuthState' is not assignable to type 'User'.
Property 'delete' is missing in type 'FirebaseAuthState'.
Property 'auth' does not exist on type 'AngularFireAuth'.
我对角膜和离子膜还很陌生,请在这里指导我,或导航到一个不错的教程
最佳答案
我解决了重新安装Firebase和AngularFire2的问题:
npm uninstall angularfire2 --save
npm uninstall firebase --save
npm install angularfire2 firebase --save