值事件监听器返回Null

时间:2019-05-13 17:58:10

标签: android firebase firebase-realtime-database kotlin

我是android和Kotlin的新手。我在Firebase中有一个用户数据库,如下所示:

User Data Format

我正在尝试使用以下代码从firebase实时获取当前用户数据:

val user = FirebaseAuth.getInstance().currentUser
val userid = user?.uid
mRef = FirebaseDatabase.getInstance().reference

if (userid != null) {    
    mRef.child(userid).addListenerForSingleValueEvent(object: ValueEventListener{
        override fun onCancelled(p0: DatabaseError) {
        }

        override fun onDataChange(p0: DataSnapshot) {
            val userid = p0.child("uid").getValue(String::class.java)
            Log.d(TAG, "User: " + userid)
        }
    })
}

但是,该函数返回null。我不明白为什么

1 个答案:

答案 0 :(得分:0)

您应该将数据库从父节点遍历到所需的值。

在您的代码中,您需要更改以下内容:

mRef = FirebaseDatabase.getInstance().reference

对此:

mRef = FirebaseDatabase.getInstance().reference.child("users");