私のFirebaseデータベースの '/ users/$ key' urlからcurrentUser FirebaseObjectObservableにユーザデータを取得したいと思います。ここで、$ keyはauth.uidになります。ログアウトすると、currentUserは自動的にnullになります。AngularFire2でユーザーがログインしている(authがnullではない)ときにオブジェクトをフェッチする方法は?
私は私のテンプレートで非同期パイプを使用する必要があると思うが、私はログイン後にcurrentUserデータを取得することができ、ログアウト(私はそれをやったやり方)の後にメモリにとどまる。 authオブジェクトがnullになると自動的にnullになるようにしたいと思います。
import { Component } from '@angular/core';
import { AngularFire, FirebaseObjectObservable } from 'angularfire2';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
currentUser : FirebaseObjectObservable<any>;
constructor(public af: AngularFire) {
this.af.auth.subscribe(auth => {
console.log(auth);
this.currentUser = af.database.object('/users/' + auth.uid);
});
}
}
私は私のテンプレートでこのようなものを使用しても大丈夫だろう{{(currentUser | async)?.email}}
観測に関する知識の私の不足が問題はここですが、またAngularFire認証オブジェクトは/私が理解から観察可能rxjs異なっています。
更新:
constructor(public af: AngularFire) {
this.af.auth.subscribe(auth => {
console.log(auth);
if(auth)
this.currentUser = af.database.object('/users/' + auth.uid);
else
this.currentUser = new FirebaseObjectObservable<any>();
});
}
まだそれは私に権利を感じていません:
これは、私はそれを解決してきた方法です。このようにするのは大丈夫ですか?