Firebase с kotlin проблемой массива рейтингов - PullRequest
0 голосов
/ 23 февраля 2020

Я не могу получить рейтинги одновременно и получить среднее значение! Кто-нибудь знает, как это сделать? Получите проблему, сказав, что «ни одна из следующих функций не может быть вызвана с предоставленными аргументами»

val ref = FirebaseDatabase.getInstance().getReference("recipes/$id/reci_ratings/")
    ref.addListenerForSingleValueEvent(object : ValueEventListener {
        override fun onDataChange(p0: DataSnapshot) {
            p0.children.forEach{
                val rt= it.child("rating").value
                val numbers = arrayOf(rt)
                var sum = 0
                for (element in numbers) {
                    sum += element
                }
                val average = sum / numbers.size
            }
        }

1 Ответ

0 голосов
/ 23 февраля 2020

Добро пожаловать на SO. Скорее всего, вы получите хорошие ответы, если будете следовать этим советам: { ссылка }

Но тем не менее ... в вашем коде отсутствует закрывающая скобка с круглыми скобками, но, возможно, вы просто пропустил добавить это в вашем вопросе?

Другое дело, что ваш массив чисел никогда не будет содержать более одного значения рейтинга. Вы должны объявить и заполнить его так:

val ref = FirebaseDatabase.getInstance().getReference("recipes/$id/reci_ratings/")
var numbers: ArrayList<Int> = arrayListOf() // Change to whatever type is accurate in your case
var sum = 0

ref.addListenerForSingleValueEvent(object : ValueEventListener {
    override fun onDataChange(p0: DataSnapshot) {
        p0.children.forEach {
            val rt = it.child("rating").value
            numbers.add(rt)

        }

        // After the forEach loop is finished you should have all the ratings in the numbers array

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