@AnWa

Android чтение дата класса из Firebase?

Есть список данных в дата классе UserModel, который я записываю в Firebase. Но прочитать обратно уже не получается, так как данные приходят в виде json. Как можно преобразовать обратно в дата класс?

data class UserModel(
    val id: Int = 0,
    var userFName: String = "",
    var userSName: String = ""
)


fun writeFirebase(myRef: DatabaseReference){
    val users:List<UserModel> = UserObject.getUsers()
    for (user in users) {
        myRef.push().setValue(user)
    }
}


fun readFirebase(myRef: DatabaseReference){
    myRef.addValueEventListener(object: ValueEventListener {
        override fun onDataChange(snapshot: DataSnapshot) {
            val children = snapshot.getChildren()
            for (child in children) {
                var user = child.getValue() //as UserModel
                Log.d("FireBase", "Value is: $user")
           }
        }

        override fun onCancelled(error: DatabaseError) {
            Log.w("FireBase", "Failed to read value.", error.toException())
        }
    })
}


И получается, что отпраляются данные в виде:
UserModel(id=1, userFName=FName1, userSName=SName1)


а приходят в виде:
{id=1, userFName=FName1, userSName=SName1}
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@AnWa Автор вопроса
val user = child.getValue(UserModel::class.java)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы