почему вложенный addValueEventListener не выполняется? - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть вложенная область действия addValueEvenlistener в моем проекте. И я пытаюсь отладить этот фрагмент кода, используя точки останова.

itemEventListener = databaseRef.addValueEventListener(object : ValueEventListener {
    override fun onCancelled(e: DatabaseError) {
        displayErrorConnection(view)
        Toast.makeText(activity,e.message, Toast.LENGTH_LONG).show()
    }

    override fun onDataChange(snapShot: DataSnapshot) {
        listItem.clear()
        for (categoryF in snapShot.children){
            for (itemF in categoryF.children){
                val item = itemF.getValue(Item::class.java)
                item?.itemId = itemF.key
                /*
                .
                nested addValueEventListener started here.
                .
                 */
                // i put a breakpoint on this line .....................[1]
                userRef.child(item?.uid!!).addValueEventListener(object : ValueEventListener{
                    override fun onCancelled(p0: DatabaseError) {
                        // i put a breakpoint on this line .....................[2]
                        activity?.toast("هناك خطأ ما")
                    }

                    override fun onDataChange(snapshot: DataSnapshot) {
                        val user = snapShot.getValue(User::class.java)
                        // i put a breakpoint on this line .....................[3]
                        item.userImageUrl = user?.photoUrl!!
                        item.userNumber = user.phoneNumber
                        item.userName = user.name
                    }

                })

Единственная первая точка останова компилируется, затем вложенная область пропускается, поэтому вторая и третья точки останова во вложенной области addValueEventListener не компилируются и там было сообщение о точке останова, которое гласило: не исполняемая строка кода.

1 Ответ

0 голосов
/ 17 апреля 2020
// i put a breakpoint on this line .....................[1]

--------------------------------------------------------------------------------
-----------> try to print item?.uid on log to see if the you got the id
i believe that it much be something wrong with the reference.
---------------------------------------------------------------------------------

                                userRef.child(item?.uid!!).addValueEventListener(object : ValueEventListener{
                                    override fun onCancelled(p0: DatabaseError) {
                                        // i put a breakpoint on this line .....................[2]
                                        activity?.toast("هناك خطأ ما")
                                    }

                                    override fun onDataChange(snapshot: DataSnapshot) {
                                        val user = snapShot.getValue(User::class.java)
                                        // i put a breakpoint on this line .....................[3]
                                        item.userImageUrl = user?.photoUrl!!
                                        item.userNumber = user.phoneNumber
                                        item.userName = user.name
                                    }

                                })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...