我有以下壁炉数据结构:
-posts
-postKey1
+commentKey1
+commentKey2
+commentKey3
我需要获取给定帖子密钥的特定帖子的注释数。因此,上面的数据应返回postKey1。
据我所知,如果不下载您要计算的数据,就无法执行计数。
相反,您可以使用AngularFire2检索postKey1
下的所有数据,然后可以计算检索到的帖子。或者,如果您愿意付出努力,则可以使用REST API,指定shallow
参数仅检索postKey1
下的键 - 然后您可以计数。
计数评论数的方法在HTML文件中的循环中调用。
...
<label>{{getCommentCount(post.$key)}} </label>
...
这是对我有用的实现。numChildren()
方法可以做到这一点。另外,我认为preserveSnapshot
似乎消除了我遇到的错误(例如,无限的呼叫/获取,结果不足以在浏览器中错误的资源错误)。
getCommentCount(postKey: string) : number{
let commentCount = 0;
let url = `/posts/${postKey}`;
const posts = this.af.database.object(url, { preserveSnapshot: true });
posts.subscribe(snapshot => {
commentCount = snapshot.numChildren();
});
return commentCount;
}