Cómo escribir datos desnormalizados en Firebase

He leído los documentos de Firebase enDatos de estructura. El almacenamiento de datos es barato, pero el tiempo del usuario no lo es. Deberíamos optimizar para obtener operaciones y escribir en múltiples lugares.

Entonces podría almacenar unlista nodo y unlista-índice nodo, con algunos datos duplicados entre los dos, al menos el nombre de la lista.

Estoy usando ES6 y promete en mi aplicación javascript para manejar el flujo asíncrono, principalmente de buscar una clave de referencia de firebase después del primer envío de datos.

let addIndexPromise = new Promise( (resolve, reject) => {
    let newRef = ref.child('list-index').push(newItem);
    resolve( newRef.key()); // ignore reject() for brevity
});
addIndexPromise.then( key => {
   ref.child('list').child(key).set(newItem);
 });

¿Cómo me aseguro de quelos datos permanecen sincronizados en todos los lugares, sabiendo que mi aplicación solo se ejecuta en el cliente?

Para verificar la cordura, configuré un setTimeout en mi promesa y cerré mi navegador antes de que se resolviera, y de hecho mi base de datos ya no era consistente, con uníndice adicional guardado sin una lista correspondiente.

¿Algún consejo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta