Ich bin in der Lage, die Daten für einen bestimmten Wert im Kind mit orderByChild
und equalTo
(cool, dass es auch für verschachtelte Kind funktioniert)
Gibt es einen einfachen Weg, um die Daten zu bekommen, wo ein bestimmter Wert nicht gefunden wird, im Grunde genommen etwas wie ein notEqualTo("somevalue")
?
Ich denke, ich habe die Lösung gefunden, und das ist mehr, wie die Datenbank entworfen werden sollte und tatsächlich habe ich jetzt die Absicht hinter der Firebase-Richtlinie verstanden
Original Design:
%Vor%Aktualisiertes Design:
Abgesehen von der Speicherung der ID und des Namens des Benutzers sollten wir auch einen Knoten mit der ID selbst als Schlüssel speichern und ihn als wahr markieren
%Vor% Mit dem aktualisierten Design, wenn ich ref.orderByChild('user/id1').equalTo(true)
Ich würde als Child1 und Child 3
ausgegeben werden
und wenn ich ref.orderByChild('user/id1').equalTo(null)
ausführen,
Ich würde Child2 als die Ausgabe
erhalten
Im Firebase Query-Modell können Sie nicht auf Ungleichheit für einen Wert filtern.
Aber Sie können auf das Fehlen eines Wertes prüfen (im Wesentlichen: das Fehlen einer Eigenschaft). Zum Beispiel mit diesem Datenmodell:
%Vor% Ich kann nach Kindern suchen, die keine user/name
Eigenschaft haben mit:
Was zu dem einzigen Kind führt, das keinen Namen hat:
child3
Fühlen Sie sich frei, mit meinem jsbin zu spielen, um zu sehen, ob Sie weiterkommen: Ссылка
Update: Ich wusste, dass ich das schon vorher beantwortet hatte, aber ich konnte es vorher nicht finden. Hier ist der Betrogene: ist es mögliche Abfragedaten, die nicht der angegebenen Bedingung entsprechen? . Es sieht so aus, als ob ich einen Fehler habe, da ich eindeutig auf das Fehlen einer Eigenschaft im obigen Code testet.
Tags und Links android firebase firebase-database