【问题标题】:Read data from Firebase Database and display in a textview从 Firebase 数据库读取数据并在文本视图中显示
【发布时间】:2019-12-28 15:51:10
【问题描述】:

我正在使用 Firebase 学习 Kotlin,我只是一个初学者,我在 Firebase 网站上找到了以下代码,用于从 Firebase 数据库读取数据并将其显示在使用 Kotlin 的活动的 TextView 中。我想我已经理解了代码并解决了除“(Post :: class.java)”之外的所有错误。 我没有名为“发布”的活动或课程。它是什么,里面应该有什么代码? 我要做的是从 Firebase 数据库中读取一个数据并将其显示在 TexView 中。

val postListener = object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // Get Post object and use the values to update the UI
        val post = dataSnapshot.getValue(Post::class.java)
        // ...
    }

    override fun onCancelled(databaseError: DatabaseError) {
        // Getting Post failed, log a message
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException())
        // ...
    }
}
postReference.addValueEventListener(postListener)

【问题讨论】:

  • 请将您的数据库结构添加为 JSON 文件或至少是屏幕截图。
  • @AlexMamo 感谢您的及时回复。我没有大数据结构,因为我只是一个初学者。我只有一个数据库,它只包含一个节点和一个子节点值。

标签: android firebase kotlin


【解决方案1】:

Post::class.java 返回 KClass 引用,KClass 具有属性 java

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/java.html

因为getValue() 可以有一个 POJO 类,所以你可以在getValue() 中使用它。

所以基本上Pojo 应该是一个包含将映射到数据库的字段的类。

例如,您可以创建以下数据类:

data class Post(
        val postName: String = "", 
        val postDescription: String = "")

【讨论】:

  • 您好彼得,感谢您的及时回复。我一直在尝试使用您提供的代码。由于我的代码中有错误,我无法完成我想要做的事情。您能否提供我需要从 Firebase 数据库读取数据并将其显示在文本视图中的确切代码。我一直在尝试使用网上提供的代码自己完成它,但我无法做到。你也可以让我知道我的数据库应该是什么样子。
  • 只需创建一个文件 Post.kt 并将代码添加到该文件的答案中。然后在getValue(Post::class.java) 之后你可以做textView.text = post?.postName
  • 你的数据库中有数据吗?
  • 我有一些示例数据。但是如果我试图解释它可能会令人困惑。因此,我将删除其中的所有内容并按照您的建议添加新数据。以便您清楚地知道数据库的结构实际上是什么。
  • 您需要使用setValue() 添加数据。 Post post = Post("post1","first post") 然后获取一个 firebase 实例并使用 setValue(post)
猜你喜欢
  • 1970-01-01
  • 2018-06-10
  • 2014-10-17
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多