私は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ではない)と、他のユーザーは再認証できません。
は、なぜあなたはreauthenticate''しようとしているのに役立ちます
AngularFireAuth
希望を使用する必要がありますか? 'login'プロセス中に' reauthenticate'をどうやって行いますか? – Rexford