19

Ich möchte einem Firebase-Benutzerobjekt eine Eigenschaft hinzufügen. Die user documentation besagt, dass ich nur zusätzliche Eigenschaften mithilfe der Firebase-Echtzeitdatenbank speichern kann.Firebase: Festlegen zusätzlicher Benutzereigenschaften

Ich bin unsicher auf wie dies in der Praxis funktioniert.

Was bedeutet Folgendes in der Praxis?

Sie können dem Firebase-Benutzerobjekt keine anderen Eigenschaften direkt hinzufügen. Stattdessen können Sie die zusätzlichen Eigenschaften in Ihrer Firebase Realtime Database speichern.

Ich interpretiere es wie folgt:

„Sie Eigenschaften eines Objekts FIRUser nicht ändern, aber Sie können dies kombinieren mit ihren zusätzlichen Aufgaben“

fand ich die Funktion documentation eingestellt das ich Interpet auf diese Weise:

var userRef = ref.child("users"); 
    userRef.set({ 
    newfield: "value" 
    }); 

Ist dies als ensible Ansatz?

Antwort

16

Sie sind fast da. In der Legacy-Firebase-Dokumentation hatten wir einen Abschnitt unter storing such additional user data.

Der Schlüssel ist, die zusätzliche Informationen unter dem uid des Benutzer zu speichern:

let newUser = [ 
     "provider": authData.provider, 
     "displayName": authData.providerData["displayName"] as? NSString as? String 
    ] 
    // Create a child path with a key set to the uid underneath the "users" node 
    // This creates a URL path like the following: 
    // - https://<YOUR-FIREBASE-APP>.firebaseio.com/users/<uid> 
    ref.childByAppendingPath("users") 
     .childByAppendingPath(authData.uid).setValue(newUser) 

Ich habe eine Notiz hinzugefügt, dass wir diese Informationen in der neuen Dokumentation fügen sollen. Wir müssen nur einen guten Platz dafür finden.

+6

Also der Knoten "Benutzer" existiert standardmäßig nicht, es sei denn, dass diese korrekt erstellt wurde? Ich stimme zu, dass dies in den neuen Dokumenten sein sollte. Hätte mir 2 Tage Verwirrung erspart. :) – cdock

+0

Ich bin wirklich verwirrt, ich versuche, die genaue Dame Sache zu erreichen aber bringen Sie ein zusätzliches Feld bei der Registrierung für eine Postleitzahl/speichern und speichern Sie es irgendwo, aber die Dokumente führen mich zu glauben, das ist nicht möglich? – PhpDude