У меня есть вложенная область действия 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 не компилируются и там было сообщение о точке останова, которое гласило: не исполняемая строка кода.