AngularFire2, wie Sie Ihre eigenen benutzerdefinierten Taste anstelle der automatisch erzeugten
Momentan benutze ich:
this.af.database.list('users').push(user);
Wie kann ich den Schlüssel von dem Objekt, das vorgelegt wird, werden benutzerdefinierte.
Also ich möchte in der Lage sein, die Knoten, die dieses Objekt auf die gleiche uid des angemeldeten Benutzers. Ich habe Zugriff auf diese Id brauche ich nur in der Lage sein zu wissen, wie man die benutzerdefinierten Objekte, die Knoten, nicht die automatisch generierte id, wenn Sie drücken.
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie eine Methode wie unten mit Angularfire2
Hier ist eine weitere Methode, die Sie verwenden können, mit AngularFire2
push
hinzufügen einer push-Taste, verwenden Sie einfach dieupdate
Methode:vanilla js sieht wie folgt aus:
Pass in Ihre benutzerdefinierte Schlüssel, in diesem Fall projectKey das ist eine variable, die Sie bevölkern, von irgendwo:
Call whatEverName(projectKey) in deinem code irgendwo und Sie haben eine benutzerdefinierte Knoten-Taste. Dieser Rat ist so aktuell wie 25. Juli 2017.
Ich habe ein bisschen mehr hier zu helfen, diejenigen, die versuchen, erstellen Sie einen untergeordneten Knoten zu dem oben genannten mit anderen push-Schlüssel, wie Sie einen benutzerdefinierten Schlüssel. Dies ist nützlich für eine Vereinigung index unter, dass das Projekt, wie eine Liste von Benutzern, die an diesem Projekt arbeiten. Sie können nicht wollen, diese Liste in der Projekt-Daten, sondern erhalten es durch die Abfrage. Dies macht es einfacher zu denormalize die Daten und haben eine flachere Architektur, die Feuerstellung Ziel.
Dass Vereins-Knoten aufgerufen wird ProjectsMembers in diesem Fall und wir werden die Aufnahme des Projekts Besitzer in es. Fügen Sie andere Benutzer Knoten die gleiche Weise. Beachten Sie die backticks!!! Single quotes nicht funktionieren. In diesem Fall lege ich eine Eigentümer-Namen als Verweis auf die push-Taste. Leichter zu Lesen in der db.
Wie bereits in vielen der oben genannten Antworten, ruft
push()
generieren Sie einen Schlüssel für Sie. Hier ist ein alternativer Ansatz.Stattdessen müssen Sie verwenden
child()
wenn Sie möchten, eigene Schlüssel zu ermitteln, die Schlüssel/Pfad für sich selbst. Etwa so:firebase.database.ref().child('/path/with/custom/key/goes/here').set();
In Ihrem Fall, verwenden Sie für die Authentifizierung des Benutzer-ID, hier ist, wie Sie sich ihm nähern:
Tun Sie es einfach mit einem normalen FB-Methode wie diese:
Etwas in Ihrem Bereich, gebunden ist, um Ihre Liste wird die Aktualisierung widerzuspiegeln.
Lesen und Schreiben von Daten auf dem Web