Ich plane, einen Hauptbaum Anruf Benutzer erstellen, die den Namen verschiedene Benutzer als USERNAME verwendet enthalten. Also von jedem Benutzernamen werden ihre Daten z.B. Vollständiger Name, Adresse, Telefonnummer. Und ich möchte wissen, wie man die Daten jedes Benutzers erhält, wenn er sich in seinem Profil anmeldet.Wie verknüpfe ich jeden Benutzer in Firebase mit seinen Daten?
Antwort
Zunächst einmal schlage ich vor, Sie verbringen einige Zeit mit Firebase vertraut zu lesen, indem Sie die Firebase Guide (Link to old Firebase Guide) lesen. Alles, was Sie wissen müssen, um Ihre eigene Frage zu beantworten, ist dort verfügbar. Aber der Einfachheit halber werde ich ein Beispiel setzen hier:
Fangen wir mit Sicherheit beginnen, hier sind die grundlegenden Feuerbasis Regeln, die Sie für dieses Beispiel benötigen: (Quelle: Understanding Security) (alte Quelle: Understanding Security)
{
"rules": {
"users": {
"$user_id": {
".write": "$user_id === auth.uid"
}
}
}
}
I Überspringt die eigentliche Benutzererstellung und Anmeldung und konzentriert sich auf die Frage nach dem Speichern und erneuten Abrufen von Benutzerdaten.
Speichern von Daten: (Quelle: Firebase Authentication) (alte Quelle: User Authentication):
{
"users": {
"simplelogin:213": {
"username": "password",
"email": "bobtony"
},
"twitter:123": {
"username": "twitter",
"email": "Andrew Lee"
},
"facebook:456": {
"username": "facebook",
"email": "James Tamplin"
}
}
}
Und last but not least die Retreiving der
// Get a reference to the database service
var database = firebase.database();
// save the user's profile into Firebase so we can list users,
// use them in Security and Firebase Rules, and show profiles
function writeUserData(userId, name, email, imageUrl) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email
//some more user data
});
}
Die resultierenden Feuerbasis Daten wie folgt aussehen Daten, dies kann auf verschiedene Arten geschehen, aber für dieses Beispiel werde ich ein einfaches Beispiel aus dem Firebase-Handbuch verwenden: (Quelle: Read and Write data) (alte Quelle: Retreiving Data)
//Get the current userID
var userId = firebase.auth().currentUser.uid;
//Get the user data
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
//Do something with your user data located in snapshot
});
EDIT: Hinzugefügt Beispiel für Rückgabedaten
Also, wenn Sie als Benutzer Twitter angemeldet sind: 123 Sie einen Verweis auf die Lage auf dem Benutzer-ID basiert erhalten und wird diese Daten erhalten:
"twitter:123": {
"username": "twitter",
"email": "Andrew Lee"
}
In Winkel 1 mit angularfire
Controller-Code:
var ref = firebase.database().ref().child("users/" + firebase.auth().currentUser.uid);
var syncUserObject = $firebaseObject(ref);
syncUserObject.$bindTo($scope, "data");
HTML-Ansicht:
<input type="text" ng-model="data.username"/>
<!-- all changes from our Firebase database magically appear here! -->
<p>You said: {{ data.username }}</p>
Das eine Datenbindung sehr schöne Drei-Wege schafft!
Ja, Andre. Vielen Dank. Stellen Sie sich nun vor, Benutzer aus dem obigen Code sind eine Datenbank, in der verschiedene externe Personen (z. B. "simple-login: 123", "twitter: 123" usw.) ihre Konten erstellen. Wie kann jede externe Person ihre eigenen Daten erhalten? – DIPXOID
Das geschieht bereits im letzten Teil meines Beispiels, **. Child (authData.uid) ** macht den Verweis auf die Firebase mit ihrer eindeutigen Benutzer-ID (SimpleLogin: 213, Twitter: 123, ....) –
Just hinzugefügt zu meiner Antwort zeigt die Rückkehr Daten –