使用 Kotlin 无法将 java.lang.String 类型的值转换为 int

Failed to convert a value of type java.lang.String to int using Kotlin

我正在尝试从我的收藏品中找出一些总价,但似乎某处数据不匹配我无法解决,所以如果有人能帮助我这样做,我将不胜感激

val id = auth.currentUser?.uid.toString()
dref = FirebaseDatabase.getInstance().getReference("tempCart").child(id)

dref.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(snapshot: DataSnapshot) {
        if(snapshot.exists()){

            for (cartSnapshot in snapshot.children){

                val cart = cartSnapshot.getValue(CartData::class.java)
                cartList.add(cart!!)

                toto = cartSnapshot.child("totalPrice").getValue(Int::class.java)!!

                toto += toto
            }
            orderCost.text = toto.toString()

            cartRecycler.adapter = cartAdapter
        }
    }

    override fun onCancelled(error: DatabaseError) {
        TODO("Not yet implemented")
    }
})

我已经尝试过几次通过在线阅读指南来修复它,他们正在将数据从 firebase 更改为整数,但是当我这样做时它告诉我我不能将 java.lang.string 转换为 int

您的总价可能是一个数值,但您将其作为字符串存储在数据库中。因此,您必须从数据库中读取该字符串值,然后将其转换为数字:

val str = cartSnapshot.child("totalPrice").getValue(String::class.java)!!
val value = str.toInt();
toto += value

我强烈建议将 totalPrice 作为数字存储在数据库中,因为最好从源头上解决此类类型转换问题。