我有一個簡單的系統,帶有來自Firebase的用戶身份驗證系統。我想要接收當前登錄用戶的數據列表。通過訂閱Firebase中的observable,我可以從當前登錄的用戶那裏獲取信息。在Angular2中執行函數之前獲取可觀察值
但是,在構造函數中設置的private authId
的值在調用getAllEmails()
函數之前未調用。因此${this.authId}
產量未定義。在我的getAllEmails
函數被調用之前,我如何確保從observable中獲得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