Kann ich verhindern, dass FB die set() aus dem überschreiben der vorhandenen Daten?
Wenn ich das mache, alles ist gut mit meinem itemRef:
itemRef.child('appreciates').set(newFlag);
itemRef.child('id').set(newId);
andere Eigenschaften itemRef bleiben ABER child_changed ist zweimal genannt,
Wenn ich dies tun:
itemRef.set({appreciates:newFlag,id:newId});
child_changed wird nur einmal aufgerufen, aber meine anderen Eigenschaften sind zerstört.
Gibt es eine Abhilfe neben der ungeschickt eine repopulating die gesamte Referenz-Objekt?
Dank,
Tim
- Wir haben einige undokumentierte neue features, um dieses Problem zu beheben. Können Sie mir bitte eine email an andrew auf FB dot com?
- Ich denke, das ist jetzt unter "update" firebase.com/docs/javascript-client/firebase/update.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem FB update () - Funktion ermöglicht es Ihnen, zu ändern, einige Kinder, die ein Objekt verlassen, während andere unverändert. Die update-Funktion wird nur auslösen, einen "Wert" Ereignis auf andere clients für den Pfad geschrieben wird, egal wie viele Kinder sind geändert.
In diesem Beispiel könnten Sie tun:
Dokumentation für update() ist hier.
Können Sie eine Regel erstellen, die verhindern, überschreibt, wenn bereits Daten vorhanden sind.
Reproduziert hier von FB docs Vorhandenen Daten vs Neue Daten
Ich versucht habe zu tun, diese haben eine Struktur wie die folgende:
Das problem, das ich hatte war beim laufen sagen, legen Sie auf bestimmte Felder wie name, Beschreibung und Datum, alle anderen Kind-Knoten würde dann entfernt werden mit den folgenden:
Verlassen nur den Namen, die Beschreibung und das Datum, Knoten, sondern die Verwendung der nach dem bestimmten Knoten aktualisiert werden, ohne entfernen des anderen untergeordneten Knoten, d.h. Mitglieder, Bild etc:
.child(...).set(...)
behebt es. Neugierig, zu wissen, die Argumentation.Nun .update kümmert, können Sie bestehende Daten ändern oder weitere hinzuzufügen, ohne den rest der Daten, die Sie bereits hatten.
In diesem Beispiel habe ich mit dieser Funktion legen Sie ein Produkt verkauft, das Produkt hat noch weitere Variablen mit den Daten und kann oder kann nicht haben
sold
odersellingTime
aber es spielt keine Rolle, cos, wenn es nicht existiert, erstellen Sie Sie, und wenn es das tut, wird die Daten aktualisieren