2017-08-17 4 views
0

meine Datenbankstruktur Hier:Firebase, Abfrage „nicht gleich“

{ 
    "feeling" : { 
    "fake0" : { 
     "fake1" : {...}, 
     "fake2" : {...} 
    } 
    }, 
    "profile" : { 
    "fake0" : {...}, 
    "fake1" : {...}, 
    "fake2" : {...}, 
    "fake3" : {...} 
    } 
} 

Wenn der angemeldete Benutzer „fake0“, wie kann er alle Profile holen, die nicht in seinem Gefühl sind?

Ich möchte etwas tun: ref("/profile", {notEqualTo: ["fake1","fake2"]}).on('once', .....)

Vielleicht ist meine Struktur ist schlecht, sagen Sie mir nur ein besseres und ich werde es ändern :)!

Antwort

1

Diese und ein paar andere ähnliche Fragen (Firebase: Query to exclude data based on a condition) und meine Erfahrung mit Firebase führt mich zu der Annahme, dass es in Firebase keine Funktionalitäten gibt, die dies direkt tun.

Jetzt können Sie nach Eigenschaft filtern, was nicht ganz Ihren Vorstellungen entspricht, aber es könnte für Sie nützlich sein, Ihre Datenbank so zu strukturieren, dass Benutzerprofile auch Referenzen auf die/users enthalten, die sie/in enthalten ihr Gefühl. Somit würde Ihre Anfrage viel einfacher werden. Sie möchten wahrscheinlich auch, wie in dem anderen oben verlinkten StackOverflow-Thread erwähnt, die Benutzer-ID als Schlüssel verwenden und ihren Wert als "true" speichern. Auf diese Weise können Sie anhand der ID überprüfen, ob es einfacher ist, den Wert zu überprüfen, wenn ich mich richtig erinnere.

Ich weiß, Firebase empfiehlt auch, dass Sie ein wenig redundante Informationen speichern; Es kommt darauf an, ob Sie sich beim Schreiben oder Lesen anstrengen wollen.

+0

Können Sie mir bitte mehr Ihre Lösung erklären? Ich bin mir nicht sicher, ob ich das verstehe –