【问题标题】:How to sum multiple values from firebase (android kotlin)如何从firebase(android kotlin)中求和多个值
【发布时间】:2021-07-21 04:52:48
【问题描述】:

我如何对这个数据库中的多个值求和?

【问题讨论】:

  • 请不要发布您的代码截图或其他文本内容。而是发布实际文本,并使用 Stack Overflow 的格式化工具对其进行标记。您可以通过单击 Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取 JSON 的此信息。

标签: android firebase kotlin firebase-realtime-database


【解决方案1】:

您正在尝试使用n.getValue(Int::class.java) 获取值。但如屏幕截图所示,您已将数字存储为字符串,因此 getValue 将在此处返回 null。

要解决这个问题,您需要获取字符串并然后将其转换为数字:

n.getValue(String::class.java).toInt()

【讨论】:

    【解决方案2】:

    您的数据以字符串的形式存储在 Firebase 实时数据库中。 值应存储为整数或长整数。

    但是由于根据您的屏幕截图,数据已经存储为字符串,您获得的数据需要转换为整数或长整数。

    我看到的另一个错误是您尚未初始化 mCountList。

    private var mCountList :ArrayList<Int>? = null
    

    更好的方法是

    override fun onDataChange(p0:DataSnapshot){
    
       // x to store all the integer values recieved from Firebase
       val x = arrayListOf<Int>()
       // sum to store the Sum of all the values recieved from Firebase 
       var sum = 0
    
       for(i in p0.children){
          val value = i.value as Int
    
          x.add(value)
          sum +=  value
       }
    
      // if you want you can store x data in mCountList
      mCountList = x
    
      // Display Sum with Toast
      Toast.makeText(context, "total $sum", Toast.LENGTH_SHORT).show()
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 2021-01-29
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2021-09-28
      • 2022-01-16
      相关资源
      最近更新 更多