Angular2でfirebaseプロバイダを使用してfacebook uidにアクセスしようとしていますが、facebookプロバイダからユーザーIDを取得できません。Angular2を使用してFirebaseでプロバイダUIDを取得
私はauthState.uidを使用すると、firebase uidとfacebook uidは表示されず、ドキュメントは古く、authState.facebook.uidは廃止されていますので、facebookユーザーIDを取得する正しい方法はわかりません。
インターネットを通じて、私はfacebookユーザーIDをauthState.providerData.uidのようなものを使って取得する新しい方法だと知っていましたが、コンソールで私は定義されません。ここで
は私のコードは次のとおりです。お時間を
export class AppComponent {
user: Observable<firebase.User>;
displayName;
photoURL;
constructor(public afAuth: AngularFireAuth, private db: AngularFireDatabase, private http: Http) {
this.user = afAuth.authState;
}
ngOnInit() {
this.afAuth.authState.subscribe(authState => {
if (!authState) {
console.log('NOT LOGGED IN');
this.displayName = null;
this.photoURL = null;
return;
}
let userRef = this.db.object('/users/' + authState.uid)
userRef.subscribe(user => {
let url = `https://graph.facebook.com/v2.8/${authState.uid}?fields=first_name,last_name&access_token=${user.accessToken}`;
this.http.get(url).subscribe(response => {
let user = response.json();
userRef.update({
firstName: user.first_name,
lastName: user.last_name
});
});
});
this.displayName = authState.displayName;
this.photoURL = authState.photoURL;
console.log(authState.uid);
});
}
おかげで、:)