我很难通过Firebase获取对象列表。这段代码(在我的服务中)非常简单,没有神秘感。
getObjs () {
firebase.database ().ref ('obj')
.once ('value', function (snapshot) {
console.log (snapshot.val()); // this logs every object I ask for.
return snapshot.val(); // this does not return nothing.
});
}
它要求Firebase检索对象列表。该函数返回snapshot
,这是查询的结果,但是这里有一个奇怪的部分,当我调用console.log (snapshot.val())
时,我得到每个对象,但是当我尝试使用{返回相同的值时{1}},我的组件中什么都没有。
以防万一,这是组件中的功能:
return snapshot.val()
我还尝试在生命周期钩子中运行同一行代码(构造函数中的代码),但是我得到了一个无限循环并且崩溃了应用程序。
我用这种方式更新了代码,服务:
constructor (private os) {
this.objs = this.os.getObjs ();
}
组件:
getObjs () {
return firebase.database ().ref ('obj')
.once ('value', function (snapshot) {
return snapshot.val();
});
}
使用this.os.getObjs ()
.then (data => {
this.objs = data;
console.log (this.objs);
});
,我得到console.log (this.objs);
的日志,我绝对不知道如何处理它。我尝试(不成功)将我认为可观察的内容转换为JSON。