Итерация по базе данных Firebase с использованием Kotlin - PullRequest
0 голосов
/ 16 мая 2018

Я создал массив (я думаю):

var recipeArray: List<RecipeTemplate> = mutableListOf() //RecpeTemplate is a class

Я написал базовый код Firebase и проверил, что он работает, используя console.log для распечатки данных из базы данных.

В onChildAdded() Теперь я хочу зациклить базу данных и добавить данные в массив. Вот что у меня есть:

override fun onChildAdded(snapshot: DataSnapshot?, p1: String?) {

            val children = snapshot!!.children 

            /*children.mapNotNullTo(recipeArray) {
                it.getValue(RecipeTemplate)<RecipeTemplate::class>
            } NOT SURE ABOUT THIS ONE*/


            children.forEach{
                var tempRecipe: RecipeTemplate? = null

                tempRecipe!!.recipeHeader = it.object["recipeHeaderFirebase"]
                tempRecipe!!.recipeText = it.object["recipeIngredientsTextFirebase"]
                tempRecipe!!.recipeImage = it.object["recipeImageFirebase"]

            }
        }

Here - образец данных fb.

Не уверен насчет последней части: it.object. Я думаю, это должно быть что-то еще ...

1 Ответ

0 голосов
/ 18 мая 2018

Чтобы повторить, попробуйте следующее:

override fun onChildAdded(snapshot: DataSnapshot?, p1: String?) {

        val children = snapshot!!.children
        children.forEach {
        println(it.toString())
    }
}

Это будет выполнять итерацию в непосредственных дочерних элементах вашей ссылки и извлекать данные.

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