2016-08-09 120 views
4

Derzeit arbeite ich an einem Datenbanklayout für meine Firebase-Datenbank. Ich schaue mir viele verschiedene Tutorials an, wie die Layouts aussehen sollten, aber ich bin ein wenig verwirrt darüber, was richtig ist.Richtiger Weg zum Speichern von Benutzern in der Firebase-Datenbank

Ich bin nicht sicher, auf was sollten die Nutzer als gespeichert werden, lassen Sie mich Ihnen ein Beispiel geben:

{ 
    "users": { 
    "alanisawesome": { 
     "nickname": "Alan The Machine" 
    }, 
    "gracehop": { 
     "nickname": "Amazing Grace" 
    } 
    } 
} 

Im Beispiel oben von der Firebase Legacy-docs sie Nutzer durch ihre Benutzername werden zu speichern. In einem anderen Beispiel habe ich folgendes gefunden:

{ 
    "users": { 
    "123": { 
     "name": "Kato" 
    }, 
    "234": { 
     "name": "Anant" 
    } 
    } 
} 

Hier speichern sie die Benutzer mit einer UID. Dann können Sie einfach nur push() neue Benutzer, und ihre IDs sind zufällige Schlüssel wie die folgenden -JRHTHaKuITFIhnj02kE.

Welcher der oben genannten Punkte ist der beste Weg, um Benutzer zu speichern? Benutzername, benutzerdefinierte UID oder zufällig generierter Schlüssel?

Antwort

11

Firebase Push-IDs sind großartig, wenn Sie eine Sammlung haben, die Sie chronologisch bestellen möchten, wobei die einzelnen Elemente keinen natürlichen Schlüssel haben. Also eine Liste von Blog-Posts, Chat-Nachrichten usw.

Aber wenn Artikel einen natürlichen Schlüssel haben, ist es normalerweise besser, sie unter diesem natürlichen Schlüssel zu speichern. Benutzer haben eine eindeutige ID, die normalerweise als uid bezeichnet wird. Wenn Sie keinen Grund haben, dies nicht zu tun, speichern Sie die Benutzer unter ihrer uid. Indem Sie sie unter ihrem uid speichern, können Sie die Daten für einen gegebenen Benutzer leicht nachschlagen: ref.child('users').child(user.uid). Wenn Sie die Benutzer unter einem generierten Schlüssel (z. B. einer Push-ID) gespeichert haben, müssen Sie eine Abfrage ausführen, um denselben Datensatz zu finden.

Die Beispiele, die Sie aus der Dokumentation erhalten haben, verwenden ein anderes Namensschema. Der Grund dafür ist, dass sowohl Push-IDs als auch UIDs an dieser Stelle zu mehr Verwirrung geführt hätten, als wir in den Dokumenten wollten. Deshalb haben wir in diesen Fällen kurze, lesbare Schlüssel gewählt.

+1

Ich würde ** definitiv ** für Benutzer 'uid' als Schlüssel gehen. Bonus: Bei Bedarf macht es das Sichern der Benutzerdaten mithilfe von Firebase-Regeln extrem einfach, wie Sie hier sehen können: https://firebase.google.com/docs/database/security/user-security#section-variable. – Sistr

+0

Hallo, danke, das macht Sinn! –

+0

Sehr hilfreich, danke! –