Есть ли (или рассматривалось) что-то вроде настройки «слияния» или «пакетной обработки» в Firebase?

Сегодня, немного больше программируя с Firebase, я обнаружил, что хочу пару функций:

1) Mergeset:

Say I have firebase refсо значением {a:1,b:2,c:3}.

Если я сделаю что-то вроде ref.set({a:-1,b:-2}), новое значение будет (неудивительно) {a:-1,b:- 2}.

Вместо этого представьте ref.mergeSet({a:-1,b:-2}), результатом которого будет значение ref, равное {a:-1,b :-2,c:3}.

Теперь я понимаю, что мог бы сделать что-то вроде ref.child("a").set(-1)и ref.child("b").set(-2 )для достижения этого результата, но, по крайней мере, в некоторых случаях я бы предпочел получить только один вызов моего обработчика .on().

Это переходит в мою вторую идею.

2) Batchset:

В моем приложении мне нужен способ заставить произвольное количество вызовов .setпривести только к одному вызову .onв других клиентах. Что-то вроде:

ref.startBatch()
ref.child("a").set(1)
ref.child("b").set(2)
....
ref.endBatch()

В пакетном режиме .setне приведет к вызову .on, вместо этого минимальное количество вызовов .on. ] будет результатом вызова .endBatch.


Я с готовностью признаю, что эти идеи находятся в зачаточном состоянии, и я не удивлюсь, если они будут конфликтовать с существующими архитектурными особенностями Firebase, но я решил поделиться ими в любом случае. Я обнаружил, что мне приходится тратить больше времени на обеспечение согласованности между клиентами при использовании Firebase, чем я ожидал.

Еще раз спасибо, и продолжайте в том же духе.

5
задан Harold 18 June 2012 в 23:40
поделиться