如何更新 Firebase 中的所有子项
How to update all children in Firebase?
我正在尝试在火碱上更新所有子级树。例如像这样:
firebase.child("auctions").child().update({a: true});
这给了我错误,因为孩子是空的。有什么办法可以更新拍卖的所有子项吗?
你不需要那个空的.child()
调用。
firebase.child("auctions").update({a: true});
要做的是改变 /auctions/a/whatever
到/auctions/a/true
.
如果您真的想"更新树上的所有子级",那么.set
可能会更好,因为它会将端点上的所有数据替换为您提供给它的对象。所以如果你跑了 firebase.child("auctions").set({a: true});
那么/auctions
下的所有内容都将替换为{a: true}
如果你不想炸掉/auctions
下的一切,而是想炸掉auctions/a
下的一切,你可以做。 firebase.child("auctions/a").set(true);
有多种方法可以满足您的需求。我只是不能100%确定你到底需要什么。
在某些时候,您需要遍历所有子项。这是一种简单的方法:
firebase.child("auctions").on('value', function(snapshot) {
snapshot.ref().update({a: true}); // or snapshot.ref if you're in SDK 3.0 or higher
});
或者,您可以先收集所有更新,然后将它们作为一个(可能很大)更新语句发送到 Firebase:
var updates = {};
firebase.child("auctions").on('value', function(snapshot) {
updates["auctions/"+snapshot.key+"/a"] = true;
});
snapshot.ref().update(updates); // or snapshot.ref if you're in SDK 3.0 or higher
这两个代码段完成相同的操作,但后者发送单个命令,因此在网络故障时更具弹性。
相关文章:
- Firebase 数据未正确更新
- Firebase:我可以将推送与多位置更新结合起来吗?
- 如何在 Firebase 的 Angular-Fire 中使用 $save() 来更新对象属性值
- Firebase字段延迟更新
- Firebase赢得't更新数据
- 如何在Firebase中更新后返回成功数据
- 当Firebase数据发生变化时,Google 图表不会更新
- Angular 应用程序在异步调用 Firebase 后未更新(脏检查)
- 从 Firebase 更新项目
- Firebase - 在对多个节点执行更新/扇出时设置优先级
- 使用 jquery 从 Firebase 更新页面上的数据时遇到问题
- 通过 FirebaseRef.set 更新 Firebase 安全规则
- 如何更新 Firebase 中的所有子项
- 使用AngularJS和Firebase以ng重复形式更新值
- 尝试使用Firebase facebookconnect和AngularJS更新范围变量时出现问题
- 点击AngularJS更新Firebase中的字段
- Firebase事务不会更新Firebase数据库中的实际值
- 如何使用Firebase在Angular项目中构造创建/更新数据
- 如何在firebase中更新字典,同时用angularjs添加时间戳
- 聚合物:不使用firebase元素更新firebase数据库