gpt4 book ai didi

firebase - 如何从 Firebase 数据库中检索数据并将其存储在 ListArray 中? - Kotlin

转载 作者:行者123 更新时间:2023-12-02 12:28:47 26 4
gpt4 key购买 nike

我在从我的 Firebase 数据库中检索数据时遇到了一些问题...这是我的简单代码

class Match (val teamOne: String, val teamTwo: String, val betType: String)


private var database = FirebaseDatabase.getInstance()
private var myRef = database.getReference()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myRef.child("matches").addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot?) {
val matches = snapshot!!.children
matches.forEach(){
println(it.value.toString())
}
}
override fun onCancelled(p0: DatabaseError?) {
}
})
}

这是我从数据库中得到的:

I/System.out: {bet=GG, team1=Juventus, team2=Real Madrid}

I/System.out: {bet=Over 2.5, team1=Napoli, team2=Roma}

I/System.out: {bet=2, team1=Inter, team2=Milan}

I/System.out: {bet=X, team1=Atalanta, team2=Lazio}

I/System.out: {bet=X, team1=Crotone, team2=Spezia}

我的问题是:现在如何创建 ListArray<Match>

谢谢大家!!!

最佳答案

如果您仍然想知道并且不想使用其他数据库,我有两种方法可以实现:

val mapper = object : GenericTypeIndicator<HashMap<String, Match>>() {}
val list = arrayListOf<Match>()
val map = snapshot.getValue(mapper)
map?.forEach {
list.add(it.value)
}

或者:

val list = MutableList<Match> = mutableListOf()
snapshot.children.mapNotNullTo(list) {
it.getValue<Match>(Match::class.java)
}

免责声明:Match 类可能必须是数据类

关于firebase - 如何从 Firebase 数据库中检索数据并将其存储在 ListArray<Class> 中? - Kotlin ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46625235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com