В моей базе данных в реальном времени есть json:
{
"stickers": {
"StickerPack0": {
"Sticker0": {
"image": "https://imgur.com/SKz7cOw.png"
},
"Sticker1": {
"image": "https://imgur.com/SKz7cOw.png"
},
"Sticker2": {
"image": "https://imgur.com/SKz7cOw.png"
},
"Sticker3": {
"image": "https://imgur.com/SKz7cOw.png"
},
"Sticker4": {
"image": "https://imgur.com/SKz7cOw.png"
},
"price": 0.99,
"title": "Happy Hamster"
}
}
}
Как видите, есть price
, title
и массив из 5 объектов (Sticker0
, * 1007). *, ...).
Чтобы разобрать его, я создал следующую сущность:
data class StickerPack(
var title: String? = null,
var price: Double? = null,
var stickers: List<String>? = null
)
Вот как я ее анализирую:
query = database.child("stickers")
query.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(error: DatabaseError) {
Timber.e(error.toException())
view?.onStickerListFailed()
}
override fun onDataChange(snapshot: DataSnapshot) {
if (snapshot.exists()) {
val stickersFirebase = snapshot.children
stickersFirebase.forEach { data ->
val sticker = data.getValue(StickerPack::class.java)
stickers.add(sticker!!)
}
view?.onStickerListLoaded(stickers)
}
}
})
Но в В этой ситуации я могу получить только такие поля, как title
и price
и не могу понять, как я могу преобразовать Sticker
объекты в массив строк. Итак, как мне найти решение этой проблемы? Я буду признателен за любую помощь. Заранее спасибо!