stackoverflow.com/questions/54454616/...
т у меня есть класс данных Kotlin следующим образом
data class User (
@get:Exclude val gUser: Boolean,
@get:Exclude val uid: String,
@get:PropertyName("display_name") val displayName: String,
@get:PropertyName("email") val email: String,
@get:PropertyName("account_picture_url") val accountPicUrl: String,
@get:PropertyName("provider") val provider: String
)
Я могу сериализовать объект без проблем. Но у меня возникли проблемы с десериализацией объекта при выполнении запроса Firebase. В настоящее время это то, что я делаю, чтобы получить данные
_firebaseReference.child(getString(R.string.firebase_users_key)).child(user.uid)
.setValue(user).addOnCompleteListener{
_firebaseReference.child("users").child(user.uid)
.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChange(p0: DataSnapshot) {
if (p0.exists()) {
val userHash = p0.value as HashMap<*, *>
var currentUser: User
if (userHash[getString(R.string.provider_key)]
!= getString(R.string.provider_google)) {
currentUser = User(false, p0.key!!,
userHash["display_name"].toString(),
userHash["email"].toString(),
userHash["account_picture_url"].toString(),
userHash["provider"].toString())
} else {
currentUser = User(true, p0.key!!,
userHash["display_name"].toString(),
userHash["email"].toString(),
userHash["account_picture_url"].toString(),
userHash["provider"].toString())
}
}
}
})
}
Это всего лишь тестовый проект, над которым я работаю, чтобы попрактиковаться в своем Kotlin, но это то, что я хотел бы выяснить.
Если я делаю это совершенно неправильно, пожалуйста, дайте мне знать, любые советы будут с благодарностью
Спасибо