Цель состоит в том, чтобы взять предмет из базы огня и удалить его, как только он будет просмотрен. Также возьмите другие предметы и поместите их в список, как только первый предмет будет прочитан.
В настоящее время я беру элемент из 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, элемент входит, а все остальные элементы обрабатываются за ним.