我需要计算Firebase中多个子树的子节点数,以便在视图中显示。对于上下文,我的应用程序正在计算流程中不同阶段的用户。
我的根节点(阶段)有两个子树(stageOne,stageTwo)。每个子树包含可变数量的子节点,我需要在视图中对其进行计数和显示。
数据库:
stages
|__stageOne
| |__user1
| |__user2
|
|__stageTwo
|__user3
组件:
stageObject: FirebaseObjectObservable<any>;
constructor(public af: AngularFire){
this.stageObject = af.database.object('/stages');
}
查看(不显示)
<h3>Stage 1 Count = {{ (stageObject | async)?.stages.stageOne.length }}</h3>
<h3>Stage 2 Count = {{ (stageObject | async)?.stages.stageTwo.length }}</h3>
查看(它应该如何看):
Stage 1 Count = 2
Stage 2 Count = 1
答案 0 :(得分:2)
您无法使用AngularFire2(不加载所有项目),但您可以使用REST API:
const
使用 this.http.get('https://your-app-name.firebaseio.com/stages/stageOne.json?shallow=true')
.map(response => response.json())
.subscribe(items => Object.keys(items).length)
只会返回“已选定”节点的所有子项的键。
如果要加载所有这些内容,可以使用shallow=true
:
list()
或将对象转换为数组:
this.stageOneObject = af.database.list('/stages/stageOne');