Como gravar dados não normalizados no Firebase

Eu li os documentos do Firebase emDados de Estruturação. O armazenamento de dados é barato, mas o tempo do usuário não é. Devemos otimizar para obter operações e escrever em vários locais.

Então eu posso armazenar umLista nó e umíndice de lista nó, com alguns dados duplicados entre os dois, pelo menos o nome da lista.

Estou usando o ES6 e prometo no meu aplicativo javascript para lidar com o fluxo assíncrono, principalmente de buscar uma chave ref da base de firmas após o primeiro envio de dados.

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);
 });

Como garantir que oos dados permanecem sincronizados em todos os lugares, sabendo que meu aplicativo é executado apenas no cliente?

Para verificação de sanidade, defini um setTimeout em minha promessa e fechei o navegador antes que ele resolvesse, e meu banco de dados não era mais consistente, com umíndice extra salvo sem uma lista correspondente.

Algum conselho?

questionAnswers(2)

yourAnswerToTheQuestion