Кто может объяснить как работает данный слушатель
Как слушатель читает данные из child(receiverRoom), тогда как он установлен только на child (senderRoom), он же не является дочерним элементом child(receiverRoom). Почему DataSnaphot выходит за границы своего родителя ?
val senderRoom = currentUser + " + " + receiverId
val receiverRoom = receiverId + " + " + currentUser
binding.send.setOnClickListener {
val message = HashMap<String, Any>()
message.put("message", binding.editMessage.text.toString())
message.put("userId", currentUser)
message.put("time", (Date().time))
binding.editMessage.setText("")
database.child(senderRoom).push()
.setValue(message).addOnSuccessListener {
database.child(receiverRoom).push()
.setValue(message)
}
}
listMessage = ArrayList()
database.child(senderRoom).addValueEventListener(object: ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
listMessage.clear()
for(dataSnapshot: DataSnapshot in snapshot.children){
val chats = dataSnapshot.getValue(ChatsModel::class.java)
chats?.key = dataSnapshot.key!!
listMessage.add(chats!!)
adapter.setList(listMessage)
}
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(this@ChatDetail, "Ошибка", Toast.LENGTH_SHORT).show()
}
})
Источник: Stack Overflow на русском