Kotlin'de data class kullanmanızı öneririm
data class User(val user_id:String = "",
val username:String = "",
val image:Int = 0,
var score:String = "")
Alttaki mesaja ek olarak
val ref = FirebaseDatabase.getInstance().reference
ref.child("User").orderByChild("score").addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(userSnapshots : DataSnapshot) {
userSnapshots.children.forEach { snap ->
val mUser = snap.getValue(User::class.java) ?: return@forEach
tempList.add(mUser)
}
}
override fun onCancelled(e: DatabaseError) { }
}
Merhaba kodları ezbere yazdım o yüzden parantez hatası vs. olabilir. Aşağıdaki şekilde verileri çekebilirsin. Aklına takılan yer varsa açıklayabilirim.
var referans = FirebaseDatabase.getInstance()
val userList : MutableList<User> = arrayListOf()
referans.child("User").orderByChild("score").addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(userSnapshots : DataSnapshot) {
for(userSnapshot in userSnapshots.children ){
val mUser = userSnapshot.getValue(User::class.java)
tempList.add(mUser!!)
}
}
override fun onCancelled(userSnapshots DatabaseError) {
}
}
kodlarda problem çıkmadı fakat hiçbir şey gelmedi
öncesinde direk böyle getiriyordum yapamadım bi türlü
private fun generateLeadersData(): MutableList<User> {
val leaders = mutableListOf(User(...),User(...))
val filteredLeaders = leaders
.filter { it.point > 0 }
.sortedByDescending { it.point }
return filteredLeaders.toMutableList()
}