Ich habe Benutzerdaten in der Datenbank gespeichert
users: {
-Kp56mwwpFiCwIXLszqu: {
email: "[email protected]",
name: "test name",
username: "testname"
},
-Kp58X2WGUVNazSSbRqF: {
email: "[email protected]",
name: "another user",
username: "anotheruser"
}
}
Gibt es eine Möglichkeit, den Schlüssel des Benutzers zu erhalten, zB -Kp56mwwpFiCwIXLszqu
oder -Kp58X2WGUVNazSSbRqF
.
Ich möchte den bestehenden Benutzern weitere Sammlungen hinzufügen. Für zB. Ich bin als eingeloggt testname
und möchte den testname
Schlüssel aus der Datenbank holen , damit ich dort weitere Sammlungen schieben kann.
Jede Hilfe wird geschätzt. Vielen Dank
Diese Schlüssel sehen aus wie automatisch generierte Schlüssel. Sie möchten wahrscheinlich die Speicherung Ihres Benutzerprofils in der Datenbank ändern, indem Sie seine Daten unter seiner speichern uid
.
Beispielsweise:
// Definition of the user profile class.
export class UserProfile {
email: string;
name: string;
username: string;
}
----------------------------------------------------
// Inside of some service.
constructor(
private angularFireAuth: AngularFireAuth,
private angularFireDatabase: AngularFireDatabase
) { }
saveUserProfile(profile: UserProfile): firebase.Promise<void> {
let currentUserUid = this.angularFireAuth.auth.currentUser.uid;
return angularFireDatabase.object(`users/${currentUserUid}`).update(profile);
}
Das sollte die Benutzerprofildaten unter seiner uid
. Beachten Sie, dass ich die update
Methode anstelle von verwendet habe, push
weil im push
Gegensatz zu update
oder ein neuer eindeutiger Schlüssel generiert wird set
. Ihre Daten haben dann eine Struktur wie folgt:
users: {
{user_uid_will_be_here}: {
email: '[email protected]',
name: 'Test User',
username: 'myusername'
}
}
Auf diese Daten können Sie dann in Zukunft einfach durch den aktuell angemeldeten Benutzer zugreifen uid
.
getCurrentUserProfile(): UserProfile {
let currentUserUid = this.angularFireAuth.auth.currentUser.uid;
return this.angularFireDatabase.object(`users/${currentUserUid}`);
}
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen