Как получить общее количество лайков по всем сообщениям, опубликованным одним пользователем в android firebase? - PullRequest
2 голосов
/ 21 апреля 2020

Структура, в которой я храню сообщения, как показано ниже:

show in this image

Так я храню информацию о сообщении. :

post information

UID идентификатора пользователя, который опубликовал сообщение курса.

Я хочу получить общее количество лайков , которое конкретный пользователь с UID получил на все свои сообщения

Например:

Пользователь с UID: Avvj7v9v имеет два сообщения с 4 и 2 лайков, соответственно. Итак, общее количество лайков, полученных всеми его постами, равно 6.

Я хочу, чтобы получить количество лайков, равное 6 в этом примере.

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Go до databaseReference.child("Posts") и l oop во всех сообщениях найдите тех, чей дочерний элемент uid соответствует нужному пользователю, и сохраните это подмножество идентификаторов сообщений, скажем, в ArrayList, postsOfTheUser.

Далее go до databaseReference.child("Likes") и l oop через все лайки. Не обращайте внимания на всех детей, чей идентификатор сообщения находится не в postsOfTheUser, но тех, чей идентификатор сообщения находится в postsOfTheUser, продолжают суммировать лайки, используя getChildrenCount() для каждого из сообщений.

0 голосов
/ 21 апреля 2020

Вы можете сделать что-то вроде этого.

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) {

}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...