2

我存储帖子之类的结构如下所示:

在这张图片中显示

这是我存储帖子信息的方式:

发布信息

UID 当然是发布帖子的用户的用户 ID。

我想获取具有UID的特定用户在他的所有帖子中获得的喜欢总数

例如:

具有 uid: Avvj7v9v 的用户有两个帖子,分别有 4 和 2 个赞。所以,他所有帖子的总点赞数是 6。

我想要一种方法来获得喜欢的次数,在这个例子中是 6。

4

2 回答 2

1

转到databaseReference.child("Posts")并遍历所有帖子,找到其uid孩子与所需用户匹配的帖子,并保留该帖子 ID 的子集,例如在 ArrayList 中postsOfTheUser

接下来,转到databaseReference.child("Likes")并遍历所有喜欢的内容。忽略所有帖子 ID 不在 中的孩子postsOfTheUser,但帖子 ID 在中的孩子postsOfTheUser,继续getChildrenCount()对每个帖子的喜欢求和。

于 2020-04-21T17:07:46.363 回答
0

你可以做这样的事情。

databaseReference.child("Likes").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    long sum = 0;
    for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
        long size = snapshot.child(UUID).getChildrenCount();
        sum += size;
        textView.setText("Total Likes for this User: " + sum);
    }
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
于 2020-04-21T08:54:13.907 回答