Android список обновлений FireBase - PullRequest
0 голосов
/ 18 октября 2018

Я занимаюсь разработкой приложения для чата со списком людей, которые общались с вами, как и для любого чата.Мне нужно обновить список, кто последним разговаривал с вами или кто последний разговаривал с вами.Поэтому, когда я отправляю сообщение кому-то, я удаляю свою строку из его списка, создаю ее снова и делаю то же самое в своем списке.Это мой код:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query applesQuery = ref.child(theUID).child("messages").orderByChild("lastUIDTalkedTo").equalTo(hisU);

applesQuery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


        if (dataSnapshot.exists())
        {
            for (DataSnapshot appleSnapshot: dataSnapshot.getChildren()) {
                appleSnapshot.getRef().removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {

                        FirebaseDatabase hisDbMessageList = FirebaseDatabase.getInstance();
                        final DatabaseReference hisDocMessageList = hisDbMessageList.getReference(hisUID).child("messages").push();
                        hisDocMessageList.setValue(new MessagesListModel(theUID , id , nickName , handle , country , returnThePostDate() ,
                                returnPostTime() , theUID , false));
                    }
                });
            }
        }else
        {
            FirebaseDatabase hisDbMessageList = FirebaseDatabase.getInstance();
            final DatabaseReference hisDocMessageList = hisDbMessageList.getReference(hisUID).child("messages").push();
            hisDocMessageList.setValue(new MessagesListModel(theUID , id , nickName , handle , country , returnThePostDate() ,
                    returnPostTime() , theUID , false));
        }
    }

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

Это не всегда хорошо работает.Любая идея, чтобы заставить это работать действительно хорошо?

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