根据文本值使用kotlin将数据从Firebase检索到android studio [英] Retrieving data from firebase to android studio using kotlin depending on text value
问题描述
如何获取从Firebase检索的数据的ID,以便我可以根据ID限制从Firebase检索的数据.
这是我当前的代码,它从我的Firebase数据库上的子甲虫"中检索所有数据,我想对此加以限制,以便根据ID是什么,它仅显示1个数据.
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
}
}
})
这是我的Firebase结构:
您可以在此处访问Google Developer推荐的培训 Codelabs-Android
- 我为您过滤了
Android
类别.您可以在此处找到Web/Mobile快速培训或后续的演示.
它写在Java
上,但是这个想法仍然存在.
如果您对Kotlin
不太熟悉,则可以在Android Studio上快速将代码转换为Kotlin
并稍后进行研究.从您的Refactor
菜单中(如果我没有误认为3.2.1以下的最新版本).
在 Firebase文档中,请不要忘记将标签更改为Kotlin
.
.
如果文档中没有Kotlin
选项卡,请尝试使用工具中的Firebase
,然后选择Realtime Database
.它将向您显示基本代码.由于我正在使用Java
,因此它显示了Java代码.由于您的默认语言是Kotlin
,
也许会显示Kotlin
代码.
.
how to get the id of data retrieved from the firebase so I can limit the data being retrieved from the firebase depending on the id.
here is my current code, it retrieves all the data from child "beetle" on my firebase database, I want to limit that so it will show only 1 data depending on what the id is.
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
}
}
})
here is my firebase structure:
You can visit Google Developer recommended training here Codelabs - Android
- I filter
Android
category for you. You can find Web / Mobile quick training here or demo to follow along.
It is written on Java
, but the idea is still there.
And you can quickly convert your code to Kotlin
on Android Studio and study them later if your not familiar with Kotlin
that much. From your Refactor
menu (If I'm not mistaken for late version below 3.2.1).
.
.
From Firebase Docs don't forget to change the tab to Kotlin
.
.
If there is no Kotlin
tab from the documentation, try the Firebase
from your tool, and select the Realtime Database
. It will show you the basic code. Since I'm using Java
, it is showing Java code. Since your default lang is Kotlin
,
maybe it will show Kotlin
code.
.
这篇关于根据文本值使用kotlin将数据从Firebase检索到android studio的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!