I've a function like below, trying to read data from Firebase DB, counting them and finally return the count number.
But "ad_count" value is always 0. Somehow I can't pass the data from "onDataChange". How can I do that? Thanks.
fun count():Int{
var ad_count :Int = 0
var ref = FirebaseDatabase.getInstance().reference
var query =ref.child("users")
.child(FirebaseAuth.getInstance().currentUser!!.uid)
query.addListenerForSingleValueEvent(object : ValueEventListener{
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChange(p0: DataSnapshot) {
var array : ArrayList<String> = ArrayList()
for (i in p0.children){
if(i?.key.toString().startsWith("ads",false)){
array.add(i?.key.toString())
}
}
ad_count = array.size +1
//return ad_count -> if I use in here, throwing "type mismatch" error.
}
})
return ad_count //it's always return 0 here
}