Al hacer un poco más la programación con Firebase hoy, me encontré deseando para un par de características:¿Se ha establecido (o se ha considerado) algo como configuración de "fusión" o "lote" en Firebase?
1) Combinar conjunto:
decir que tengo una base de fuego ref
que tiene el valor {a:1,b:2,c:3}
.
Si hago algo como ref.set({a:-1,b:-2})
el nuevo valor será (como era de esperar) {a:-1,b:-2}
.
En su lugar, imagine ref.mergeSet({a:-1,b:-2})
que tendría un resultado en el valor de la ref que es {a:-1,b:-2,c:3}
.
Ahora, se dan cuenta de que podía hacer algo como ref.child("a").set(-1)
y ref.child("b").set(-2)
para lograr este resultado, pero al menos en algunos casos, preferiría para obtener sólo una única llamada a mi manejador .on()
.
Esto se convierte en mi segunda idea.
2) lotes conjunto:
En mi solicitud me gustaría una manera de forzar un número arbitrario de llamadas a .set
sólo resultará en una llamada a .on
en otros clientes. Algo así como:
ref.startBatch()
ref.child("a").set(1)
ref.child("b").set(2)
....
ref.endBatch()
En el modo por lotes, .set
no daría lugar a una llamada a .on
, en cambio, el número mínimo de llamadas a .on
haría todo el resultado de llamar .endBatch
.
Estoy dispuesto a admitir que estas ideas son bastante incipiente, y no me sorprendería si entran en conflicto con las características arquitectónicas existentes de Firebase, pero yo pensé en compartir todos modos. Me parece que tengo que pasar más tiempo para garantizar la coherencia entre los clientes cuando uso Firebase de lo que esperaba.
Gracias de nuevo, y sigan con el gran trabajo.