I have a Firebase Database with several purchases in Android app, points value is assigned for each purchase, then entries are showing by following way:

When userId is log in, a button appears and when user click on it the "showInfoClient" function is called and it must show user and the amount of points. Code is:
private val database = Firebase.database
private val myref = database.getReference("compras")
fun showInfoClient(view: View) {
        val userlog = FirebaseAuth.getInstance().currentUser?.displayName
        val alertDialogInfo = AlertDialog.Builder(this).create()
        myref.orderByChild("userId").equalTo(userlog).addListenerForSingleValueEvent(object :
            ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {
                var sum = 0
                for (data in dataSnapshot.children) {
                    sum += data.child("puntos").getValue(Int::class.java)!!
                    Toast.makeText(this@Principal, sum, Toast.LENGTH_SHORT).show()
                }
            }
            override fun onCancelled(databaseError: DatabaseError) {}
        })
        alertDialogInfo.setTitle(userlog)
        alertDialogInfo.setMessage("Puntos: ") // + sum
        alertDialogInfo.setButton(
            AlertDialog.BUTTON_POSITIVE, "OK"
        ) { dialog, _ ->; dialog.dismiss() }
        alertDialogInfo.show()
        val btnPositive = alertDialogInfo.getButton(AlertDialog.BUTTON_POSITIVE)
        val layoutParams = btnPositive.layoutParams as LinearLayout.LayoutParams
        layoutParams.weight = 100f
        btnPositive.layoutParams = layoutParams
    }
I have tried to use different options but i´m not able to set "sum" value on
alertDialogInfo.setMessage("Puntos: $sum")
Thanks in advance
 
    