1 бит это самая маленькая информационная единица. Бит это значение 0 или 1.
Чтобы закодировать 2 возможных варианта, достаточно 1 бита.
Если нужно закодировать 3 варианта, то нужно будет уже 2 бита.
При чем 2 мя битами можно закодировать 3 варианта и даже 4.
Количество исходов, или символов которые можно закодировать определяется по формуле: 2 в степени х = количество исходов.
где Х - количество Бит.
Так 2^5 = 32 - - - значит 5 битами можно закодировать 32 символа и менее.
2^6=64 - - - 6 ю битами можно закодировать 64 символа и менее.
Значит от вет будет 6 бит
ответ:Для начала в 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()
}