Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用numChildren()计算邮件数计数的Firebase子级数_Angular_Firebase_Angularfire2 - Fatal编程技术网

Angular 使用numChildren()计算邮件数计数的Firebase子级数

Angular 使用numChildren()计算邮件数计数的Firebase子级数,angular,firebase,angularfire2,Angular,Firebase,Angularfire2,我正在尝试计算用户有多少条消息 现在我用以下方法提取数据: this.msgData = this.fire.authState.switchMap(auth => this.db.object(`messages/${auth.uid}`).valueChanges()); this.msgData.subscribe(msgdata =>{ console.log(msgdata); }); 输出: 如何返回这些密钥的编号? db类似于: 只要做: Object.k

我正在尝试计算用户有多少条消息

现在我用以下方法提取数据:

  this.msgData = this.fire.authState.switchMap(auth => this.db.object(`messages/${auth.uid}`).valueChanges());
this.msgData.subscribe(msgdata =>{

console.log(msgdata);


});
输出:

如何返回这些密钥的编号? db类似于:

只要做:

Object.keys(msgdata).length
你可以为此目的使用。例如:

this.msgData.subscribe(msgdata =>{

console.log(_.size(msgdata));

});

谢谢。我觉得这是一种非常低效的方法,因为仅仅为了计算键的数量,我就提取所有数据。还有其他方法吗?您可以执行以下操作:启动一个云函数,该函数侦听对该节点的更改,并在每次更改时计算子节点的数量并更新其他节点,例如/messageCount/$uid,然后您只需从中提取计数。我更喜欢这样,因为客户不需要做任何工作