In etwas mehr Programmierung mit Firebase zu tun heute, fand ich mich für ein paar Funktionen wünschen:Gibt es in Firebase eine Einstellung wie "Zusammenführen" oder "Stapelverarbeitung"?
1) Merge Satz:
sagen, dass ich ein Feuerbasis ref
haben, die den Wert {a:1,b:2,c:3}
hat.
Wenn ich etwas wie ref.set({a:-1,b:-2})
mache, wird der neue Wert (nicht überraschend) {a:-1,b:-2}
sein.
Stellen Sie sich statt dessen ref.mergeSet({a:-1,b:-2})
vor, was zu einem Wert von {a:-1,b:-2,c:3}
führen würde.
Jetzt merke ich, dass ich so etwas wie ref.child("a").set(-1)
und ref.child("b").set(-2)
tun könnte, um dieses Ergebnis zu erreichen, aber zumindest in einigen Fällen, würde ich es vorziehen, nur einen einzigen Anruf zu meinem .on()
Handler zu bekommen.
Dies geht in meine zweite Idee.
2) Batch Satz:
In meiner Anwendung ich einen Weg möchte, eine beliebige Anzahl von Anrufen zu .set
nur in einem Aufruf zu .on
in anderen Clients führen zu erzwingen. Etwas wie:
ref.startBatch()
ref.child("a").set(1)
ref.child("b").set(2)
....
ref.endBatch()
Im Batch-Modus .set
nicht in einem Aufruf von .on
führen würde, stattdessen die minimale Anzahl der Anrufe an .on
würde alle resultieren aus .endBatch
aufrufen.
Ich gebe gerne zu, dass diese Ideen ziemlich die Entwicklung begriffen sind, und ich wäre nicht überrascht, wenn sie mit dem bestehenden architektonischen Besonderheiten von Firebase in Konflikt geraten, aber ich dachte, dass ich sie trotzdem teilen würde. Ich stelle fest, dass ich mehr Zeit aufwenden muss, um die Konsistenz zwischen den Clients sicherzustellen, wenn ich Firebase verwende, was ich erwartet habe.
Nochmals vielen Dank, und weiter so gute Arbeit.