При извлечении предмета из firebase он возвращает только самый новый.Как я могу вернуть их по одному? - PullRequest
0 голосов
/ 26 апреля 2019

Цель состоит в том, чтобы взять предмет из базы огня и удалить его, как только он будет просмотрен. Также возьмите другие предметы и поместите их в список, как только первый предмет будет прочитан.

В настоящее время я беру элемент из firebase, помещаю его в список массивов, и он отображается, но если он не виден сразу, следующий добавленный элемент перезаписывает первый элемент. Затем, когда элемент виден, все входящие и более старые элементы удаляются.

Я пытался использовать обработчик и итератор для обработки элемента и входящих элементов, но он продолжает удалять все значения.

ArrayList<String> messageUrlList = new ArrayList<>();

    private void listenForMessage() {
        final DatabaseReference messageDb = FirebaseDatabase.getInstance().getReference().child("users").child(currentUid).child("receivedMessages").child(userId);
        messageDb.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String messageUrl = "";
                for (DataSnapshot messageSnapshot : dataSnapshot.getChildren()) {

                    if (messageSnapshot.child("messageUrl").getValue() != null) {
                        messageUrl = messageSnapshot.child("messageUrl").getValue().toString();
                    }
                    if(messages != null) {
                        messageUrlList.add(messageUrl);
                        messages.setText(messageUrl);
                        initializeDisplay();
                    }
                    messageDb.child(messageSnapshot.getKey()).removeValue();
                }
            }

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

Функциональность аналогична Snapchat, элемент входит, а все остальные элементы обрабатываются за ним.

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