小编aid*_*181的帖子

将Firebase数据快照反序列化为Kotlin数据类

嗨我有一个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
)
Run Code Online (Sandbox Code Playgroud)

我能够没有问题地序列化对象.但是在执行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 = …
Run Code Online (Sandbox Code Playgroud)

serialization android kotlin firebase data-class

5
推荐指数
1
解决办法
2840
查看次数

标签 统计

android ×1

data-class ×1

firebase ×1

kotlin ×1

serialization ×1