Kotlin: obteniendo datos de Firebase

Estoy luchando por encontrar una forma eficiente de get valores individuales de mi database de Firebase. Vengo de trabajar con Swift. Al usar Swift para get datos de Firebase, fue tan simple como crear un dictionary y acceder a los datos a través de eso, y eso me permitió tener acceso a ese valor para hacer algo con él. P.ej

guard let dictionary = snapshot.value as? [String: AnyObject] else { return } let username = dictionary["username"] as? String if username == "Bob" { // do something } 

Solo puedo encontrar documentos y respuestas en línea que usan loops para recorrer la instantánea en Kotlin. ¿Hay mucho para una forma eficiente de hacer esto? Esto es todo lo que puedo encontrar en línea. Aquí hay un fragment para que comiences. Realmente lo aprecio.

 mReference.getReference("users").addListenerForSingleValueEvent(object : ValueEventListener { override fun onCancelled(p0: DatabaseError?) { TODO("not implemented") } override fun onDataChange(snapshot: DataSnapshot?) { val children = snapshot!!.children println("count: " + snapshot.children.count().toString()) } })