Кто может объяснить как работает данный слушатель

Рейтинг: 0Ответов: 0Опубликовано: 18.04.2023

Как слушатель читает данные из 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()
         }


     })

Ответы

Ответов пока нет.