【问题标题】:How to get data from firebase ( datasnapshot)?如何从firebase(datasnapshot)获取数据?
【发布时间】:2020-06-08 13:29:00
【问题描述】:

我正在使用 firebase 数据库,并且我已将用户信息存储在数据库中(实时),我想将信息获取到我的应用程序中的用户配置文件 UI 现在当我使用快照时,我不知道如何获取它的信息 有什么帮助吗?

        val userId = authRef.currentUser?.uid
        val currentUser = dataRef.getReference("/Users/$userId")
        currentUser.addValueEventListener(object : ValueEventListener{
            override fun onCancelled(p0: DatabaseError) {

            }

            override fun onDataChange(p0: DataSnapshot) {
//    I need to get data from here ( userDisplayName , userPhone, userCity, userCountry)
        }

        })

【问题讨论】:

  • 请编辑您的问题以在/Users/$userId 处显示 JSON 数据(作为文本,无屏幕截图)。您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
  • 请添加 Frank van Puffelen 的要求,并回复@。

标签: android firebase kotlin firebase-realtime-database


【解决方案1】:

试试这个

 val userId = authRef.currentUser?.uid
    val currentUser = dataRef.getReference
    val userchild = currentuser.child("Users").child("userId")
    userchild.addValueEventListener(object : ValueEventListener{
        override fun onCancelled(p0: DatabaseError) {

        }

        override fun onDataChange(p0: DataSnapshot) {
            val userDisplayName = p0.child("userDisplayName").getValue(String::class.java)
    val userPhone = p0.child("userPhone").getValue(String::class.java)
    val userCity = p0.child("userCity").getValue(String::class.java)


    }

    })

必须键入用户、用户 ID 和其他子项的正确拼写。并将这些值添加到 Ui 中的 textview

 TextView.setText=variable abc

您的代码错误。您没有拍摄我更新的正确数据快照。

【讨论】:

    【解决方案2】:

    要检索数据,请尝试以下操作:

    override fun onDataChange(p0: DataSnapshot) {
    //    I need to get data from here ( userDisplayName , userPhone, userCity, userCountry)
            val userDisplayName = p0.child("userDisplayName").getValue(String::class.java)
            val userPhone = p0.child("userPhone").getValue(String::class.java)
            val userCity = p0.child("userCity").getValue(String::class.java)
    
            }
    
            })
    

    【讨论】:

    • 我应该使用 addValueEventListener 或 addChildEventListener 还是 addListenerForSingleValueEvent ???检索用户详细信息??
    • 使用 addListenerForSingleValueEvent 因为它只会检索一次并且不会继续监听变化
    猜你喜欢
    • 2018-01-19
    • 2018-11-30
    • 2020-01-27
    • 2021-09-21
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    相关资源
    最近更新 更多