ragen Sie Benutzer nach Name oder E-Mail-Adresse mit Firebase (Swift) a

Ich bin ziemlich neu bei Firebase undSchnel und ich habe Probleme beim Abfragen. Es gibt also zwei Dinge, die ich gerne machen würde:

Query meine Benutzer undfind nur diejenigen, die einen bestimmten String @ enthalt in ihrem Namen (oder ihrer E-Mail-Adresse) und fügen Sie sie einem Array hinzu. Holen Sie sich alle meine Benutzer und fügen Sie sie zu einem Array hinzu.

Der relevante Teil meiner Daten für diese Frage sieht folgendermaßen aus:

Wie Sie sehen, verwende ich die einfache Anmeldung von Firebase (später möchte ich auch die Facebook-Anmeldung hinzufügen) und speichere meine Benutzer anhand ihrer Benutzer-ID.

Ein Teil meiner Regeldatei sieht folgendermaßen aus:

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

Also sollte jeder Lese- und Schreibzugriff auf diesen Teil meiner Daten haben.

Ich habe auch den Abschnitt "Abrufen von Daten" im Firebase iOS-Handbuch auf der Website gelesen. Gemäß diesem Handbuch sollte mein Code zum Abrufen aller Benutzernamen und E-Mail-Adressen funktionieren, zumindest denke ich. Aber das tut es nicht. Hier ist mein Code:

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)")
            }
        })
    }

Mir ist aufgefallen, dass sie in der Firebase-Anleitung immer den Typ ChildAdded und nicht Value verwendet haben, aber für mich macht Value mehr Sinn. Die Ausgabe mit Value ist nichts und die Ausgabe mit ChildAdded ist nur ein Benutzer, nämlich derjenige, der gerade angemeldet ist.

Also meine Fragen sind:

Kann ich diese Abfrage mit meiner aktuellen Datenstruktur durchführen oder muss ich das Storying der Benutzer anhand ihrer Benutzer-ID aufheben?Wenn ja, wie müsste ich meinen Code ändern, damit er funktioniert?Wenn nein, wie können meine Benutzer am besten gespeichert und nach Namen abgefragt werden?Wie kann ich z. "muster" und bekomme nur den User simplelogin: 1 (Max Mustermann)?

Ich hoffe, meine Beschreibung ist detailliert genug. Vielen Dank im Voraus für Ihre Hilfe.

Ergänzun:

Das Seltsame ist, dass im Handbuch "Abrufen von Daten" steht, dass das Abfragen und Sortieren der folgenden Daten nach Höhe möglich ist.

Daten

Querying Code:

Und ist das nicht genau das, was ich vorhabe?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage