Я столкнулся с ошибкой, которую я исследовал и пытался исправить в течение последних нескольких недель.Существует множество предложений, и я пробовал по крайней мере полдюжины с одинаковым результатом каждый раз.
Как Kotlin получает доступ к данным Firebase и заполняет очень простой класс данных?
Ошибка: com.google.firebase.database.DatabaseException: Невозможно преобразовать объект типа java.lang.String в тип com.touchtapapp.handsofhope.LandingTextTitles
Ознакомьтесь с предложениями в первую очередьпреобразовать в карту, а затем в мой пользовательский класс данных ... попытался это, успешно создал сопоставленные значения с правильными данными ... но столкнулся с точно такой же ошибкой при отправке сопоставленных значений в класс таможенных данных (LandingTextTitles).
Текущий код:
Класс модели данных
data class LandingTextTitles(
val subTitle: String,
val title: String
)
Метод извлечения данных из базы данных
private fun initTitles() {
val ref = FirebaseDatabase.getInstance().getReference("/landing")
ref.addListenerForSingleValueEvent(object: ValueEventListener {
override fun onDataChange(p0: DataSnapshot) {
p0.children.forEach {
val titles = it.getValue(LandingTextTitles::class.java)
}
}
override fun onCancelled(p0: DatabaseError) {
// Handle Cancelled Data
}
})
// Log the titles value to see if data passed correctly
Log.d("Titles", titles.toString())
}
Когда я выхожу из системы, например Log.d(it.toString())
, я вижу ключи и значения просто отлично.Что я тут не так делаю?
РЕДАКТИРОВАТЬ:
Снимок данных Firebase
РЕДАКТИРОВАТЬ 2:
Если мы используем Log.d("Titles", it.toString())
, мы получим следующее:
D/Titles: DataSnapshot { key = subTitle, value = Start Here. }
D/Titles: DataSnapshot { key = title, value = Facing unexpected problems? }