Как получить элементы из ноды по условию в 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)`
→ Ссылка