El pedido de consultas de Firebase no funciona correctamente

Básicamente, he jugado con Firebase durante la semana pasada, y recientemente me topé con el 'queryOrderedByChild ()' que hasta donde yo sé, le permite ordenar los datos en firebase. Sin embargo, parece que no obtengo los resultados adecuados. Mis datos de Firebase se ven así:

{
  "names" : {
    "-KHVUwXdVPHmrO_O5kil" : {
      "id" : "0",
      "name" : "Jeff"
    },
    "-KHVV7lCeac0cZNMi9fq" : {
      "id" : "3",
      "name" : "Stig"
    },
    "-KHVVCjXgl0XxasVOHF1" : {
      "id" : "13",
      "name" : "Ali"
    },
    "-KHVVJtyUO-yJZiompJO" : {
      "id" : "7",
      "name" : "Hannah"
    },
    "-KHVVR8tMSO1Oh7R8tR1" : {
      "id" : "2",
      "name" : "Amanda"
    }
  }
}

, y mi código se ve así:

ref.childByAppendingPath("names")
   .queryOrderedByChild("id")
   .observeEventType(.ChildAdded) { (snapshot:FDataSnapshot!) in
       if let myID = snapshot.value["id"] as? String {
           print(myID)
       }

La salida todavía está en un orden aleatorio, mostrando: 0, 2,7,1,8,4 - ¿No se supone que esto es numérico? ¿Qué estoy haciendo mal? ¿Cómo puedo ordenarlo para que sea numérico ascendente o descendente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta