Вы создали arrayList
в классе вместо onDataChange
метода.
Поэтому список данных увеличивается с дублированием данных.Вы можете сделать следующее
1) Объявить arrayList
в onDataChange
2), позвонив arrayList.clear()
перед foreach.В этом случае вы должны вместо этого
chat = new Chat(getApplicationContext(), arrayList);
chatlistView.setAdapter(chat);
позвонить
chatlistView.notifyDatasetChanged();
и инициализировать его ранее