Firebase Database strange ordering

I have this "chat-system" that I made with Firebase Database.

To retrieve the messages in the Room I do a Query with an orderByChild(timestamp) then reverse the order so I can get the "newest" Last (Because I start reading from the Bottom).

    messageList = new ArrayList<>();
    final Query query = chatRef_1.orderByChild("
            query.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    messageList.add(dataSnapshot.getValue(ChatMessage.class));
                    updateRecyclerView();
                }

                @Override
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onChildRemoved(DataSnapshot dataSnapshot) {
                    messageList.remove(dataSnapshot.getValue(ChatMessage.class));
                    updateRecyclerView();

                }

                @Override
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

But then I get this result

  • This only happens with ChildEventListener
  • The TimeStamp is done by the server
  • Does anyone have an Idea of what this might be?

UPDATE

Here's the database Structure

  • Box »» Object (Message)
  • Green »» MessageID
  • Blue »» RoomID