0

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); 
    }); 
    } 

おかげで、:)

答えて

0

[OK]を助けるので、私は、私はドント、この方法を解決し、それはそれを行うための最善の方法であれば知っているが、それは

が代わりに使用authState.facebook.uidのFacebookのUIDを(私はこれが推奨されていませんだと思う) - 私は今authState.providerData [0]

I'を.UID使用して取得するには...私の作品veはauthStで試しましたate.providerData.uidしかし、それは私が配列に取得し、uidを取得する[0]を置くので、動作しませんでした。

関連する問題