Как получить элементы из ноды по условию в Realtime Database Firebase
Мне необходимо получить из ноды базы данных Firebase не весь список, а только тот который содержит значение "ok".
Я могу получить с помощью модели User весь список
val list:List<User> = it.children.map {it.getValue(User::class.java)}
Но как получить элементы только со значением id == "ok"
Ответы (1 шт):
Автор решения: Yurii Petrov
→ Ссылка
` val rootRef = FirebaseDatabase.getInstance().reference
val usersRef = rootRef.child("users")
val okQuery = usersRef.orderByChild("id").equalTo("ok")
val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (ds in dataSnapshot.children) {
val user = ds.getValue(User::class.java)
Log.d("TAG", ds.key + " -> " + user.id)
}
}
override fun onCancelled(databaseError: DatabaseError) {
Log.d("TAG", databaseError.getMessage()) //Don't ignore errors!
}
}
okQuery.addListenerForSingleValueEvent(valueEventListener)`
