Есть список данных в дата классе 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}