【问题标题】:Unable to retrieve one of the Nested data from Firebase Realtime Database无法从 Firebase 实时数据库中检索嵌套数据之一
【发布时间】:2017-11-14 13:25:49
【问题描述】:

我在 firebase 中有以下结构。

为了检索数据,我使用以下代码-

 mFirebaseDatabaseReference = FirebaseDatabase.getInstance().reference.child("androidchat").child("users").child("uid-6")

mFirebaseDatabaseReference?.addValueEventListener(object : ValueEventListener {
    override fun onCancelled(p0: DatabaseError?) {
        callback?.handleData(false, requestType)
    }

    override fun onDataChange(p0: DataSnapshot?) {
        var userModel: UserModel? = p0?.getValue<UserModel>(UserModel::class.java)

        }
    }
})

当 onDataChange() 被调用时,p0 包含除了 group 数据之外的所有其他数据。

这是我的数据类 UserModel-

data class UserModel(var uid: String? = null,
                 var name: String? = null,
                 var image_url: String? = null,
                 var user_location: String? = null,
                 var email: String? = null,
                 var group: MutableMap<String, Boolean> = mutableMapOf(),
                 var deviceIds : MutableMap<String,String> = mutableMapOf(),
                 var online: Boolean? = null,
                 var unread_group_count: Int? = null,
                 var last_seen_online: String? = null,
                 var last_seen_message_timestamp: String? = null,
                 var admin: Boolean? = null,
                 var delete_till: String? = null,
                 var active: Boolean? = null)

知道为什么没有数据吗?这是数据的屏幕截图,用户有很多组,但它显示了 0 个组-

这是我收到的数据快照-

DataSnapshot { key = uid-6, value = {deviceIds={cc2583f5a2c92eff=dafO8mlj7aa:APA91bETLdet4b-oUnyYAe-GU68BuI4Sw1iT0jGCkUZdjes-ybA_9ZgHtZO-AoApVXQL9NfatyCgSfPSO74fsCUMY-6AY_8826D5AROVkFlQSUs8VKO5_FswoQceTxZ }, last_seen_message_timestamp=1510664398869, name=Akash Nidhi, uid=uid-6, online=true, user_location=USA-OTHERS, image_url=https://s3.ap-south-1.amazonaws.com/employees/images/150528664259b8d9f29c385.jpeg} }

数据快照中没有组!。

更新 添加了这一行 mFirebaseDatabaseReference?.keepSynced(false)。它昨天工作了几次,现在不工作了!

【问题讨论】:

  • group 数据甚至从DataSnapshot 中都丢失了?奇怪...你确定数据库截图真的反映了你的实际设置吗?
  • @PauloMattos 是的,firebase 参考网址 - https:///androidchat/users/uid-6 在浏览器中打开时,它会正确重定向到包含所有数据的确切位置跨度>
  • 显示整个数据类
  • 这可能是客户端缓存问题...是group child 最近创建(非常!)?如果是这样,请尝试暂时禁用 Firebase 的客户端持久性行为,然后重试。
  • 这很奇怪!昨天晚上我第一次尝试它的时候,今天早上又回到了同样的问题!

标签: android firebase firebase-realtime-database kotlin


【解决方案1】:

我也面临同样的问题。但最后,我得到了解决方案。我有以下格式的数据:

{
"name":"Deepak",
"date":"03 April 2018",
"match_number":"3",
"team_name1":"Delhi",
"team_name2":"Punjab"
}

我已从 match_number、team_name1 和 team_name2 中删除了下划线 (_),并使用了 ma​​tchNumber、teamName1 和 teamName2。如下所示

 {
    "name":"Deepak",
    "date":"03 April 2018",
    "matchNumber":"3",
    "teamName1":"Delhi",
    "teamName2":"Punjab"
    }

它非常适合我。试试这个,也许它也适合你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2021-01-08
    • 2019-11-26
    • 2022-11-02
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多