Я использую NativeScript и плагин Firebase, чтобы я мог получить введенные данные по уникальному идентификатору. Моя проблема в том, что я получаю только идентификатор, а не данные, которые находятся внутри идентификатора. Вот как структурируются данные в Firebase: https://i.imgur.com/Jehig5r.png
Подчеркнутый идентификатор каждого журнала.
Это код для нажатия элемента на странице редактирования:
viewDetail(id: string){
this.router.navigate(["./calendar-detail", id],
{
relativeTo: this.activatedRoute
});
}
Компонент редактирования:
private sub: any;
public log: Observable<any>;
ngOnInit(){
this.sub = this.route.params.subscribe((params: any) => {
this.id = params['id'];
this.firebaseService.getMyLog(this.id).subscribe((log) => {
this.ngZone.run(() => {
for (let prop in log) {
//props
if (prop === "id") {
this.id = log[prop];
}
if (prop === "mood") {
this.mood = log[prop];
}
if (prop === "activity") {
this.activity = log[prop];
}
if (prop === "other") {
this.other = log[prop];
}
}
});
});
});
Это служба Firebase, которая должна получать данные журнала из ID:
getMyLog(id: string): Observable<any> {
return new Observable((observer: any) => {
observer.next(this._allItems.filter(s => s.id === id)[0]);
}).share();
}
На странице редактирования html из этого кода отображается идентификатор, но не «настроение»:
<Label class="h2" [text]="mood"></Label>
<Label class="h2" [text]="id"></Label>
Я все еще привыкаю к Nativescript и Angular, поэтому я не уверен, что если я совершу глупую ошибку, любая помощь будет принята с благодарностью!
РЕДАКТИРОВАТЬ: Вот как я получаю список "журналов":
getLogList(): Observable<any> {
return new Observable((observer: any) => {
let path = 'Logs';
let onValueEvent = (snapshot: any) => {
this.ngZone.run(() => {
let results = this.handleSnapshot(snapshot.value);
console.log(JSON.stringify(results))
observer.next(results);
});
};
firebase.addValueEventListener(onValueEvent, `/${path}`);
}).share();
}