当前位置: 首页 > 知识库问答 >
问题:

无法从Firebase实时数据库检索其中一个嵌套数据

袁鸿畅
2023-03-14

我在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包含除组数据之外的所有其他数据。

这是我的dataclass用户模型-

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)

这是我收到的数据快照-

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} }

datasnapshot!中没有组!。

更新添加了此行mFirebaseDatabaseReference?。保持同步(错误)。它昨天工作了几次,现在不工作了!

共有1个答案

荆乐
2023-03-14

我也面临同样的问题。但最后,我找到了解决办法。我的数据格式如下:

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

我已经从match_number、team_name1和team_name2中删除了下划线(u),并使用了matchNumber、teamName1和teamName2。如下

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

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

 类似资料:
  • 我试图显示一个零件的"loc",如果它的零件号我给。以下是数据结构的样子: 活动代码: getLoc是Product类的getter函数,它返回给定curP对应的“loc”。curP部分表示子值。 逻辑对我来说似乎是正确的,但我没有得到输出。我哪里出了问题?

  • 问题内容: 我目前正在学习Firebase和iOS的知识,因此请耐心等待。我当前正在发布到我的表,如下所示: 我正在尝试检索插入新记录时创建的内容,但是无法检索它。我已经尝试过( 但是由于浏览网页而无法找到一个可靠的解决方案,所以这是一个随机的猜测 )。有任何想法吗? 问题答案: 注意 :-Althogh 是自以来的一项强大功能,但是当您想创建具有唯一键的节点时更喜欢将数据存储到其中。我之所以喜欢

  • 我对Firebase和Android是新手。我已经在我的Firebase帐户中存储了用户身份验证详细信息(姓名、个人资料图像而不是电子邮件ID)。我想检索那些数据(如姓名等)到我的应用程序的其他部分。如何检索实时数据库子值?

  • 请帮助我想从Firebase实时数据库检索一个特定的数据,我有2个用户,教授和学生,我想使用该数据进行验证。 FireBase实时数据库 FireBase实时数据库

  • firebase数据库最近的更新似乎有一些变化。我的项目在firebase\u数据库:^7.0.0版本下运行良好,但在firebase数据库的更新版本中,我无法更新项目代码。 以下是v7的工作版本 firebase\u数据库^9.0.12上的同一代码出现错误。我收到的错误在`(DataSnapShot snap)async{…}上错误是 无法将参数类型“Future Function(DataSn