如何从Firebase(datasnapshot)获取数据?

时间:2020-06-08 13:29:00

标签: android firebase kotlin firebase-realtime-database

我正在使用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)
        }

        })

2 个答案:

答案 0 :(得分:1)

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

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)

        }

        })

答案 1 :(得分: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)


    }

    })

必须键入Users,UserId和其他子代的拼写拼写。并将这些值添加到Ui中的textview中,添加

 TextView.setText=variable abc

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