我的Firebase数据库中有以下项目:
当我的网页加载时,我正在调用此表并尝试检索此处显示的信息:
getExerciseDesc(): Observable<any> {
return Observable.create(obs => {
this.execDbRef2.on('value', snapshot => {
const exerciseInfo = snapshot.val() as Exercise;
exerciseInfo.id = snapshot.key;
obs.next(exerciseInfo);
},
err => {
obs.throw(err)
});
});
}
我将值转换为名为Exercise的自定义类,如下所示:
export class Exercise {
constructor(
public id: string,
public description: string,
) {}
}
在我的组件中,我有以下代码:
getExec() {
this.bugService.getExerciseDesc().subscribe(exo => {
console.log(exo);
},
err => {
console.error("unable to get exercises - ", err);
});
}
但是,当exo登录到控制台时,我会看到以下内容:
这不是我所期望的,我期待看到一个带有描述的对象和一个Id填充。
我还尝试记录snapshot.val()
并引用说明字段,如下所示:
snapshot.val()['description');
然而这会产生undefined
有些人可以对我在这里做错了吗?
**更新**
好的,所以我设法使用&#39; child_added&#39;在我的服务功能中,但我觉得这是不正确的,因为我不想订阅给定的表并在每次输入时检索新的条目。
有人可以推荐另一种方法吗?