使用AngularFire2获取Firebase节点的子节点数?

使用AngularFire2获取Firebase节点的子节点数?,angular,firebase,firebase-realtime-database,observable,angularfire2,Angular,Firebase,Firebase Realtime Database,Observable,Angularfire2,我需要计算Firebase中要在视图中显示的多个子树的子节点数。就上下文而言,我的应用程序计算流程中不同阶段的用户数 我的根节点(stages)有两个子树(stageOne、stagewo)。每个子树都包含数量可变的子节点,我需要对这些子节点进行计数并在视图中显示 数据库: stages |__stageOne | |__user1 | |__user2 | |__stageTwo |__user3 组成部分: stageObject: FirebaseObjectObservabl

我需要计算Firebase中要在视图中显示的多个子树的子节点数。就上下文而言,我的应用程序计算流程中不同阶段的用户数

我的根节点(stages)有两个子树(stageOne、stagewo)。每个子树都包含数量可变的子节点,我需要对这些子节点进行计数并在视图中显示

数据库:

stages
|__stageOne
|  |__user1
|  |__user2
|
|__stageTwo
   |__user3
组成部分:

stageObject: FirebaseObjectObservable<any>;

constructor(public af: AngularFire){
    this.stageObject = af.database.object('/stages');
}

使用AngularFire2无法获取计数(不加载所有项),但可以使用REST API:

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');
或将对象转换为数组:

this.stageObject=Object.keys(this.stageObject.stageOne)
.map(key=>this.stageObject.stageOne[key]);

使用AngularFire2(不加载所有项目)无法获得计数,但可以使用REST API:

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');
或将对象转换为数组:

this.stageObject=Object.keys(this.stageObject.stageOne)
.map(key=>this.stageObject.stageOne[key]);

REST API解决方案导致chrome Browser中的
资源不足
错误REST API解决方案可能在没有身份验证的情况下工作。。。否则它可能会失败。REST API解决方案会导致chrome Browser中出现
net资源不足
错误REST API解决方案可能在没有身份验证的情况下工作。。。否则它可能会失败。
<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