首页 > 解决方案 > 显示来自 Firebase 实时数据库的数据

问题描述

在我的数据库中创建了下一个结构,现在想要在我的列表中显示数据

在此处输入图像描述

试图添加下一个代码onViewCreated

databaseReference = FirebaseDatabase.getInstance().reference
        val wordsRef = databaseReference?.child("talk-6e3c0")?.child("words")

        val valueEventListener = object : ValueEventListener {

            override fun onDataChange(dataSnapshot: DataSnapshot) {
                topWordsList.clear()
                for (wordsSnapshot in dataSnapshot.children) {
                    val topWord = wordsSnapshot.getValue(TopWord::class.java)
                    topWord?.let { topWordsList.add(it) }
                }
            }

            override fun onCancelled(databaseError: DatabaseError) {
                Log.d("some", "Error trying to get targets for ${databaseError.message}")
            }
        }
        wordsRef?.addListenerForSingleValueEvent(valueEventListener)

方法onDataChanged被调用,但例如我无法获得名称。

我的模型:

data class TopWord(
    val name: String = "",
    val description: String = ""
)

标签: androidkotlinfirebase-realtime-database

解决方案


您没有得到任何东西,因为您将项目的名称添加为参考中的子项,并且没有必要这样做。所以请更改以下代码行:

val wordsRef = databaseReference?.child("talk-6e3c0")?.child("words")

val wordsRef = databaseReference?.child("words")

我刚刚删除了对.child("talk-6e3c0")?.


推荐阅读