如何从Firebase数据库检索数据并将其存储在ListArray中<;类别>;?-科特林

如何从Firebase数据库检索数据并将其存储在ListArray中<;类别>;?-科特林,firebase,firebase-realtime-database,kotlin,Firebase,Firebase Realtime Database,Kotlin,我在从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(savedInstance

我在从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?) {
        }
    })
}
这是我从DB得到的:

I/System.out:{bet=GG,team1=尤文图斯,team2=皇家马德里}

I/System.out:{bet=超过2.5,team1=那不勒斯,team2=罗马}

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

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

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

我的问题是:现在如何创建
列表数组


谢谢大家

如果您仍在疑惑,不想使用另一个数据库,我有两种方法来实现这一点:

val mapper = object : GenericTypeIndicator<HashMap<String, Match>>() {}
val list = arrayListOf<Match>()
val map = snapshot.getValue(mapper)
map?.forEach {
    list.add(it.value)
}
val-mapper=object:GenericTypeIndicator(){}
val list=arrayListOf()
val map=snapshot.getValue(映射器)
地图?forEach{
list.add(it.value)
}
或:

val list=MutableList=mutableListOf()
snapshot.children.mapNotNullTo(列表){
getValue(Match::class.java)
}
免责声明:匹配的
类可能必须是
数据类

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