我已经阅读了有关Stucturing Data的Firebase文档.数据存储很便宜,但用户的时间不是.我们应该优化get操作,并在多个地方写.
那么我可能会存储一个列表节点和一个列表索引节点,两者之间有一些重复的数据,至少是列表名称.
我正在使用ES6并在我的javascript应用程序中承诺处理异步流,主要是在第一次数据推送后从firebase获取ref密钥.
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);
});
Run Code Online (Sandbox Code Playgroud)
我知道我的应用程序只在客户端上运行,如何确保数据在所有地方保持同步?
为了进行健全性检查,我在我的承诺中设置了一个setTimeout,并在解决之前关闭了我的浏览器,实际上我的数据库不再一致,保存了一个没有相应列表的额外索引.
有什么建议?