首页 > 解决方案 > 根据文本值使用 kotlin 将数据从 firebase 检索到 android studio

问题描述

如何获取从 firebase 检索的数据的 id,以便我可以根据 id 限制从 firebase 检索的数据。

这是我当前的代码,它从我的 firebase 数据库上的子“甲虫”中检索所有数据,我想限制它,因此它只会显示 1 个数据,具体取决于 id 是什么。

    lateinit var listView: ListView
lateinit var ref: DatabaseReference
lateinit var beetleList:MutableList<Beetle>

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_classify)

    val capturedImage = intent.extras.getParcelable("captured_image") as Bitmap?
    val beetleName=intent.getStringExtra("Beetle")


    imageCaptured2.setImageBitmap(capturedImage)
    textBeetleName.setText(beetleName)

    listView = findViewById(R.id.beetle_list)
    beetleList = mutableListOf()
    ref = FirebaseDatabase.getInstance().getReference("beetle")

    ref.addValueEventListener(object : ValueEventListener{
        override fun onCancelled(p0: DatabaseError) {

        }

        override fun onDataChange(p0: DataSnapshot) {
            if(p0!!.exists()){
                beetleList.clear()
                for (e in p0.children){
                    val beetle = e.getValue(Beetle::class.java)
                    beetleList.add(beetle!!)
                }
                val adapter = BeetleCardAdapter(this@classify,R.layout.beetle_card_item,beetleList)
                listView.adapter = adapter
            }
        }
    })

这是我的火力基地结构:

火力数据库

标签: androidfirebasekotlin

解决方案


您可以在此处访问 Google Developer 推荐的培训 Codelabs - Android

  • 我为您过滤Android类别。您可以在此处找到 Web / 移动快速培训或演示以进行跟进。

它写在 上Java,但想法仍然存在。

Kotlin如果您不太熟悉,您可以快速将您的代码转换到Android Studio 并在以后研究它们Kotlin。从您的Refactor菜单中(如果我没有误认为是 3.2.1 以下的最新版本)。

Codelab 仪表板 .

Android Studio 3.2.1 代码选项卡 .

Firebase 文档不要忘记将选项卡更改为Kotlin.

科特林

. 如果文档中没有Kotlin选项卡,请尝试使用Firebase您的工具,然后选择Realtime Database. 它将向您展示基本代码。由于我使用Java的是 ,它正在显示 Java 代码。由于您的默认 lang 是Kotlin,也许它会显示Kotlin代码。

科特林

.

Kotlination - Firebase


推荐阅读