In Cloud Firestore gibt es drei Schreibvorgänge:
1) füge
hinzu2) stellen Sie
ein3) update
In den Dokumenten heißt es, dass die Verwendung von set(object, {merge: true})
das Objekt mit dem vorhandenen Objekt zusammenführt.
Das gleiche passiert, wenn Sie update(object)
verwenden
Also, was ist der Unterschied wenn überhaupt? Es ist merkwürdig, dass Google Logik dupliziert.
So habe ich den Unterschied verstanden:
set
ohne Zusammenführung überschreibt ein Dokument oder erstellt es, falls es noch nicht existiert
set
mit Zusammenführung aktualisiert Felder im Dokument oder erstellt sie, wenn sie nicht existiert
update
aktualisiert Felder, schlägt aber fehl, wenn das Dokument nicht existiert
create
erstellt das Dokument, schlägt jedoch fehl, wenn das Dokument bereits existiert
Es gibt auch einen Unterschied in der Art der Daten, die Sie für set
und update
bereitstellen.
Für set
müssen Sie immer dokumentförmige Daten angeben:
Mit update
können Sie auch Feldpfade zum Aktualisieren verschachtelter Werte verwenden:
Ein weiterer Unterschied (die Antwort von Scarygami) zwischen "set with merge" und "update" ist, wenn mit verschachtelten Werten gearbeitet wird.
Wenn Sie ein Dokument haben, das wie folgt strukturiert ist:
%Vor% und möchte {"friend-uid-3" : true}
mit diesem:
db.collection('users').doc('random-id').set({
"friends": {
"friend-uid-3": true
}
},{merge:true})
führt zu diesen Daten:
%Vor% jedoch update
verwendet dies:
db.collection('users').doc('random-id').update({
"friends": {
"friend-uid-3": true
}
})
führt zu diesen Daten:
%Vor%Tags und Links database firebase google-cloud-firestore