如何在FireBase中写入非规范化数据

如何在FireBase中写入非规范化数据

我读过Firebase的文档结构化数据..数据存储是便宜的,但用户的时间不是。我们应该优化GET操作,并在多个地方编写。

所以我可以储存一个列单节点和列表索引节点,在这两个节点之间有一些重复的数据,至少列表名是这样的。

我使用ES6并在我的javascript应用程序中承诺处理异步流,主要是在第一次数据推送后从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,并在它解决之前关闭了我的浏览器,实际上,我的数据库已经不一致了。在没有相应列表的情况下保存额外的索引.

有什么建议吗?


森栏
浏览 331回答 2
2回答

慕容森

为了添加Franks的伟大答复,我实现了最终的一致性方法,使用了一组火基云函数..每当主值被触发时,这些函数就会被触发(例如。更改用户名称,然后将更改传播到非规范化字段。它不像事务那样快,但在许多情况下,它不需要这样做。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript