2016-06-04 6 views
0

Ich bin neu mit Firebase und NoSQL-Datenbanken. Ich frage mich, ob es möglich ist, dies zu tun: Mit einer Benutzerdatenbank möchte ich Daten per E-Mail oder UID abrufen. Ist es optimal, beide Felder als ID zu mischen und später mit den Methoden queryStartingAtValue oder queryEndingAtValue zu filtern?Strukturieren von Daten in Firebase Mischfeldern als ID

{ 
"users": { 
    "[email protected]": { 
     dataUser1: ----- }, 

    "[email protected]": { 
     dataUser2: ----- }, 

    "[email protected]": { 
     dataUser3: ----- }, 

    "[email protected]": { 
     dataUser4: ------ }, 
    } 
} 
+1

Sie können es tun, ist aber sauberer, wenn Sie nur die UID verwenden und wenn Sie einen Benutzer per E-Mail finden möchten, können Sie immer eine Abfrage nach Kind vornehmen. Auch einige Leute empfehlen, keine persönlichen Informationen des Benutzers in den Pfaden zu verwenden, um zu vermeiden, dass jemand versucht, nach Objekten und Pfaden zu suchen (abhängig von der Konfiguration Ihrer Sicherheitsregeln), der wahrscheinliche Nachteil ist, dass Sie die UID kennen müssen um direkt auf den Benutzer zuzugreifen – Ymmanuel

Antwort

1

Obwohl Sie queryStartingAtValue und queryEndingAtValue verwenden können, diese Lösung nicht so klar ist, vorstellen, dass jemand anderes Ihren Code liest (oder auch Sie nach 6 Monaten), würde er/sie weiß, was ihr von queryStartingAtValue gemeint? Wahrscheinlich nicht.

Ich denke, ist klarer orderByChild und equalTo

zu verwenden, z.B.