У меня есть простая простая система с системой аутентификации пользователей из Firebase. Я хочу получить список данных для пользователя, который в настоящее время вошел в систему. Я получаю информацию от текущего пользователя, подписавшись на наблюдаемый из Firebase.Получение наблюдаемого значения перед выполнением функции в Angular2
Однако значение private authId
, которое установлено в моем конструкторе, не вызывается перед вызовом функции getAllEmails()
. Поэтому значение ${this.authId}
не определено. Как я могу убедиться, что у меня есть значение authId, готовое от наблюдаемого до того, как вызывается функция getAllEmails
?
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