0

私はAngularFire2(Ionic2)とFirebase認証を使用しています。Firebaseを入手する方法。AngularFire2のユーザー

現在のユーザーを取得しようとして問題が発生しています。私のために働くが、一貫していない。時にはそれが設定され、時にはnullです。

let user: firebase.User = firebase.auth().currentUser; 

現在のユーザーをより一貫して得る方法はありますか?

詳細:

次のように私がログインしています:

ここ
import { FirebaseAuth, AuthProviders, AuthMethods } from 'angularfire2'; 

public auth: FirebaseAuth 

    this.auth.login({ 
     provider: AuthProviders.Google, 
     method: AuthMethods.Popup 
    }).then((data: any) => { 
      this.fireAuth.onAuthStateChanged((user) => { 
         .... 
      }); 
    }); 

ユーザーは常に人口です。しかし、私がユーザーにアクセスする必要がある場所は、コードの別の部分です。

助けてください。

UPDATE

私は、現在のユーザーを取得するには、以下を使用してみてください。

this.auth.subscribe((authData) => { 
     let user = authData.auth; 
     credential = firebase.auth.GoogleAuthProvider.credential(googleIdToken, googleAccessToken); 
     user.reauthenticate(credential).then(() => {... 
    }); 

をしかし、私は資格証明書を作成しようとすると、その後、私は次のエラーを取得する:

EXCEPTION: Uncaught (in promise): Error: reauthenticate failed: First argument "credential" must be a valid credential.

最初の方法で現在のユーザーを取得すると、エラーは発生せず、正常に機能します。

さらに詳しい情報:私は、次のuserオブジェクトをconsole.logとき

は、どちらも同じに見える:

let user: firebase.User = this.fireAuth.currentUser; 
    console.log(user); 

this.auth.subscribe((authData) => { 
      let user: firebase.User = authData.auth; 
      console.log(user); 
    }); 

が、1つの作品(ときnullではない)と、他のユーザーは再認証できません。

+0

は、なぜあなたはreauthenticate''しようとしているのに役立ちますAngularFireAuth

 constructor(afAuth: AngularFireAuth) { afAuth.authState.subscribe(auth => { if(auth) { console.log('logged in'); } else { console.log('not logged in'); } }); } 

希望を使用する必要がありますか? 'login'プロセス中に' reauthenticate'をどうやって行いますか? – Rexford

答えて

0

新しいAngularFireバージョンがあります。 (4.0.0)

新しいバージョンでは、すべてのモジュールが分割されています。ことは、私はあなたがlogin` `しようとしているとき

関連する問題