Я прочитал документы Firebase в Stucturing Data. Хранение данных дешево, но пользовательское время - нет. Мы должны оптимизировать для получения операций и писать в нескольких местах.
Итак, я могу сохранить список node и list-index node, с некоторыми дублируемыми данными между ними, по крайней мере, именем списка.
Я использую ES6 и promises в своем приложении javascript для обработки потока async, в основном, извлечения ключа ref из firebase после первого нажатия данных.
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);
});
Как убедиться, что данные остаются в синхронизации во всех местах, зная, что мое приложение работает только на клиенте?
Для проверки работоспособности я установил setTimeout в своем обещании и закрыл свой браузер до его разрешения, и действительно, моя база данных больше не была согласованной, а дополнительный индекс был сохранен без соответствующего списка.
Любые советы?