Элемент списка дублируется при изменении в firebase

Сделала слушатель на checkbox и отправляю данные в базу:

holder.cbEnabled.setOnClickListener {
            REF_DATABASE_ROOT.child(NODE_TASKS).child(currentItem.id.toString()).child(
                CHILD_TASK_ENABLED).setValue(holder.cbEnabled.isChecked)
                .addOnCompleteListener {
                        TASK.enabled = holder.cbEnabled.isChecked
                }
        }

У меня есть список с модельками, получаю его так:

private fun getTaskList(recyclerView: RecyclerView) {
        var taskIdArray : Array<String> = arrayOf()
        val taskArrayList: ArrayList<TaskItem> = ArrayList()
        REF_DATABASE_ROOT.child(NODE_WORKER_TASK)
            .addValueEventListener(AppValueEventListener { node ->
                for (taskSnapshot in node.children) {
                    for (idSnapshot in taskSnapshot.children) {
                        val taskId = idSnapshot.value.toString()
                        taskIdArray += taskId
                    }
                }
                for (id in taskIdArray) {
                    REF_DATABASE_ROOT.child(NODE_TASKS).child(id)
                        .addValueEventListener(AppValueEventListener { it ->
                            val task = it.getTaskModel()
                            taskArrayList.add(task)
                            taskListAdapter = TaskListAdapter(taskArrayList, WORKER.managerStatus)
                            recyclerView.adapter = taskListAdapter
                        })
                }
            })
    }

В итоге получилось такое поведение

При изменении состояния checkbox, в списке создаётся новый элемент, старый удаляется только при обновлении страницы

Понимаю, что проблема в том, что список обновляется и появляется изменённый элемент, а старый не удаляется. Но как исправить не знаю. Буду очень благодарна за помощь)


Ответы (0 шт):