从我的Firebase数据库的单个字段中获取值

时间:2019-05-11 19:53:46

标签: android firebase firebase-realtime-database kotlin

好吧,我想用Koltlin做一件非常简单的事情,所以我想... 我想用我存储在Firebase数据库中的“文件”字段的值设置一个textview.text。这是我的数据库:

enter image description here

我得到了与单个用户相关的内容,但是像这样

key - enGKzLMIE0czXUWrcUeCnfKLQ7r1 value: {file=https://firebasestorage.googleapis.com/v0/b/lci9project.appspot.com/o/Avatars%2Fde4d49b5-20e7-4801-80d0-2458aafc5d23?alt=media&token=ffd9ab4f-73c7-49b5-9090-b2c5ff05e3e1, userid=Lasyyyl}

使用以下代码:

val uidref= FirebaseAuth.getInstance().currentUser?.uid
    FirebaseDatabase.getInstance().reference.child("users/$uidref")
        .addListenerForSingleValueEvent(object : ValueEventListener {
            override fun onCancelled(p0: DatabaseError) {
            }

            override fun onDataChange(dataSnapshot: DataSnapshot) {
                val key = dataSnapshot.getKey()
                val value = dataSnapshot.getValue()
               println("key - $key value: $value")

但是我似乎无法仅获得“文件”值...

2 个答案:

答案 0 :(得分:1)

要获取文件的值,请更改以下内容:

val value = dataSnapshot.getValue()

对此:

val value = dataSnapshot.child("file").getValue(String::class.java)

答案 1 :(得分:1)

如果您只想要文件Strong,则有2种选择

int

或者您也可以要求文件属性

datasnapshot.getChild("file").getValue(String.class)