Компьютерная сеть - это совокупность компьютеров, взаимосвязанных через каналы передачи данных для обеспечения обмена информацией и коллективного доступа пользователей к аппаратным, программным и информационным ресурсам сети.
В общем случае для создания компьютерных сетей требуется наличие линии связи между компьютерами (канала передачи данных), специального аппаратного обеспечения (сетевого оборудования) и специального программного обеспечения (сетевых программных средств). Компьютерные сети предназначены:
• для обмена данными между ПК;
• для совместного использования вычислительных ресурсов. Ресурсы бывают трех типов:
• аппаратные (принтер, емкости жестких дисков);
• программные;
• информационные.
Когда все участники небольшой компьютерной сети пользуются общим принтером, то они разделяют общий аппаратный ресурс. В сети может находиться один компьютер с увеличенной емкостью жесткого диска (файл-сервер), на котором участники сети хранят свои архивы и результаты работы. В этом случае аппаратным ресурсом является внешняя память сетевого компьютера. Другой распространенный пример: предоставление услуг хостинга - возможности размещенияweb-страниц и других пользовательских файлов на сервере в Интернет.
Пример совместного использования программных ресурсов: для выполнения очень сложных и продолжительных расчетов возможно подключение к удаленной большой ЭВМ, при этом существует возможность отправить на нее вычислительное задание, а по окончании расчетов точно так же получить результат обратно.
Информационные ресурсы образуют данные (текст, графические изображения, аудио- и видеоинформация), хранящиеся на удаленных компьютерах. Пример: Интернет воспринимается как гигантская информационно-справочная система.
Различают следующие виды компьютерных сетей:
• локальные, которые используются для обмена информацией между ПК, расположенными на ограниченной территории (удаленными на небольшие расстояния) в пределах одного здания или в рамках одной организации. При этом, как правило, используются проводные линии связи;
• региональные, связывающие компьютеры отдельной страны или экономического региона;
• глобальные, используемые для связи компьютеров разных стран, континентов.
Глобальная сеть Интернет - это всемирное объединение различных региональных и корпоративных компьютерных сетей, образующих единое информационное пространство благодаря использованию общих стандартных протоколов передачи данных.
Основной стандартный протокол в Интернете – TCP/IP(-InternetProtocol).
Протокол - совокупность правил и соглашений, регламентирующих формат и процедуру передачи данных между двумя или несколькими независимыми устройствами или процессами. Выбор протокола ТСРЛР был обусловлен исторически.
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
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
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
В общем случае для создания компьютерных сетей требуется наличие линии связи между компьютерами (канала передачи данных), специального аппаратного обеспечения (сетевого оборудования) и специального программного обеспечения (сетевых программных средств).
Компьютерные сети предназначены:
• для обмена данными между ПК;
• для совместного использования вычислительных ресурсов. Ресурсы бывают трех типов:
• аппаратные (принтер, емкости жестких дисков);
• программные;
• информационные.
Когда все участники небольшой компьютерной сети пользуются общим принтером, то они разделяют общий аппаратный ресурс. В сети может находиться один компьютер с увеличенной емкостью жесткого диска (файл-сервер), на котором участники сети хранят свои архивы и результаты работы. В этом случае аппаратным ресурсом является внешняя память сетевого компьютера. Другой распространенный пример: предоставление услуг хостинга - возможности размещенияweb-страниц и других пользовательских файлов на сервере в Интернет.
Пример совместного использования программных ресурсов: для выполнения очень сложных и продолжительных расчетов возможно подключение к удаленной большой ЭВМ, при этом существует возможность отправить на нее вычислительное задание, а по окончании расчетов точно так же получить результат обратно.
Информационные ресурсы образуют данные (текст, графические изображения, аудио- и видеоинформация), хранящиеся на удаленных компьютерах. Пример: Интернет воспринимается как гигантская информационно-справочная система.
Различают следующие виды компьютерных сетей:
• локальные, которые используются для обмена информацией между ПК, расположенными на ограниченной территории (удаленными на небольшие расстояния) в пределах одного здания или в рамках одной организации. При этом, как правило, используются проводные линии связи;
• региональные, связывающие компьютеры отдельной страны или экономического региона;
• глобальные, используемые для связи компьютеров разных стран, континентов.
Глобальная сеть Интернет - это всемирное объединение различных региональных и корпоративных компьютерных сетей, образующих единое информационное пространство благодаря использованию общих стандартных протоколов передачи данных.
Основной стандартный протокол в Интернете – TCP/IP(-InternetProtocol).
Протокол - совокупность правил и соглашений, регламентирующих формат и процедуру передачи данных между двумя или несколькими независимыми устройствами или процессами. Выбор протокола ТСРЛР был обусловлен исторически.
ответ:Для начала в 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()
}