Firebaseのユーザー認証システムを使用したシンプルなシステムを使用しています。私は現在ログインしているユーザのデータのリストを受け取りたいと思っています。私は、Firebaseから観測可能なものを購読することで、現在ログインしているユーザから情報を取得します。Angular2で関数を実行する前に観測可能な値を取得する
getAllEmails()
関数が呼び出される前に、しかし、私のコンストラクタで設定されてprivate authId
の値が呼び出されません。したがって、${this.authId}
は未定義となります。 getAllEmails
関数が呼び出される前に、私が監視対象からauthIdの値を取得できることを確認するにはどうすればよいですか?
import { Injectable } from '@angular/core';
import { AngularFire, FirebaseListObservable } from 'angularfire2';
import { Email } from '../email';
import { AuthService } from '../auth/auth.service';
@Injectable()
export class EmailService {
private authId: string;
constructor(
private af: AngularFire,
private authService: AuthService
) {
this.authService.getUserInformation()
.subscribe(user => {
this.authId = user.authId;
})
}
getAllEmails(): FirebaseListObservable<any> {
return this.af.database.list(`/emails/${this.authId}`);
}
}
ここでgetAllEmails()を呼び出していますか? ngOnInit() –
うん、そしてそれをクラス変数に代入する – user3642173