【问题标题】:Display data from Firebase Realtime Database显示来自 Firebase 实时数据库的数据
【发布时间】:2019-10-24 13:17:42
【问题描述】:

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

尝试在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 = ""
)

【问题讨论】:

    标签: android kotlin firebase-realtime-database


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,我可以在 8 分钟后接受答复。但是还有一个小问题,我可以重命名我的数据库吗?
    • 不,你不能那样做。您无法更改 talk-6e3c0 项目 ID。
    猜你喜欢
    • 2020-07-23
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2023-01-11
    • 1970-01-01
    相关资源
    最近更新 更多