
1. прежде чем переходить любую дорогу, остановись на краю тротуара.
2. внимательно посмотри налево и направо и выясни: какая же это дорога — с односторонним или с двусторонним движением.
3. прежде чем начнёшь переходить дорогу, убедись, что все транспортные средства находятся от тебя на безопасном для перехода расстоянии.
4. пересекай проезжую часть быстрым шагом, но не беги.
5. переходи дорогу под прямым углом к тротуару, а не наискосок.
и самое главное:
будь внимателен всё то время, пока ты переходишь дорогу!
ответ:Для начала в onCreate() уберите эту строку:
chatContainer.clear()
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
lateinit var adapter: RecyclerChatAdapter
Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:
when {
documentSnapshot != null -> {
for (dc in documentSnapshot.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> {
val chat = dc.document.toObject(Chat::class.java)
chatContainer.add(chat) // Добавление данных в Recycler
if(chatContainer.size == documentSnapshot.documentChanges)
{
adapter = RecyclerChatAdapter(chatContainer)
}
}
}
}
}
}
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
for (i in chatContainer) {
adapter.notifyDataSetChanged()
}