Consultar usuarios por nombre o dirección de correo electrónico usando Firebase (Swift)

Soy bastante nuevo paraFirebase yRápido y estoy teniendo problemas cuando se trata de consultar. Básicamente, hay dos cosas que me gustaría hacer:

Consultar a mis usuarios yencuentra solo aquellos que contienen una determinada cadena en su nombre (o dirección de correo electrónico) y agregarlos a una matriz.Obtenga todos mis usuarios y agréguelos a una matriz.

La parte relevante de mis datos para esta pregunta se ve así:

Como puede ver, estoy usando el inicio de sesión simple de Firebase (más tarde también me gustaría agregar el inicio de sesión de Facebook) y estoy almacenando a mis usuarios por su uid.

Una parte de mi archivo de reglas se ve así:

"registered_users": {
    ".read": true,
    ".write": true,
    ".indexOn": ["name"]
 }

Por lo tanto, todos deberían tener acceso de lectura y escritura a esta parte de mis datos.

También leí la parte "Recuperando datos" de la Guía de Firebase iOS en su sitio web y de acuerdo con esa guía, mi código para obtener todos los nombres de usuarios y direcciones de correo electrónico debería funcionar, al menos eso creo. Pero no lo hace. Aquí está mi código:

func getUsersFromFirebase() {
        let registeredUserRef = firebaseRef.childByAppendingPath("registered_users")
        registeredUserRef.queryOrderedByChild("name").observeSingleEventOfType(.Value, withBlock: { snapshot in
            if let email = snapshot.value["email"] as? String {
                println("\(snapshot.key) has Email: \(email)")
            }
            if let name = snapshot.value["name"] as? String {
                println("\(snapshot.key) has Name: \(name)")
            }
        })
    }

Noté que en la guía de Firebase siempre usaban el tipo ChildAdded y no Value, pero para mí Value tiene más sentido. El resultado con Value no es nada y el resultado con ChildAdded es solo un usuario, es decir, el que está conectado en este momento.

Entonces mis preguntas son:

¿Puedo hacer esta consulta con mi estructura de datos actual o tengo que deshacerme de la historia de los usuarios por su uid?En caso afirmativo, ¿cómo tendría que cambiar mi código para que funcione?Si no, ¿cuál sería la mejor manera de almacenar mis usuarios y hacer posible la consulta por nombre?¿Cómo puedo consultar, p. "reunir" y obtener solo el usuario simplelogin: 1 (Max Mustermann)?

Espero que mi descripción sea lo suficientemente detallada. Gracias de antemano por su ayuda.

Suplemento:

Lo extraño es que la guía "Recuperando datos" dice que es posible consultar y ordenar los siguientes datos por altura.

Datos:

Código de consulta:

¿Y no es exactamente lo mismo que intento hacer?

Respuestas a la pregunta(2)

Su respuesta a la pregunta