私はfirebaseから一度だけデータを取得しようとしています。 このコードでは、購読してリアルタイムで変更と更新の値を監視します。AngularFire 2 v5一度データを取得する方法は?
this.profileData = this.fire.authState.switchMap(auth => this.db.object(`profile/${auth.uid}`).snapshotChanges().map(action => {
const $key = action.payload.key;
const data = { $key, ...action.payload.val() };
return data;
})).subscribe(profile => {
this.profileData = profile;
console.log(this.profileData.username); // this is working.
});
私はこのような何かをしようとしていたが、あなたは、あなたが退会を気にする必要があり、独自の観測を使用している場合は、そのは
this.profileData = this.fire.authState.switchMap(auth => this.db.object(`profile/${auth.uid}`)).take(1).subscribe(profile =>{
console.log(profile.username);
}));
'take(1)'は動作するはずです:[購読なしで値を1回だけ取得する](https://github.com/angular/angularfire2/issues)/456#issuecomment-241509299)。 – Grimthorr
this.profileData = this.fire.authState.switchMap(auth => this.db.object( 'profile/$ {auth.uid}'))。 console.log(this.profileData.username);これは未定義を返しますか? –
with console.log(this.profileData)私はこれを持っています:http://prntscr.com/h0waiy –