更新 Firebase 子项的值
Update Value of Firebase Children
我正在尝试更新 Firebase 中我的 services
项的所有子项的 "name",以删除所有前导和尾随空格。我正在使用正则表达式来执行此操作,但我似乎无法弄清楚为什么它不起作用。
我正在使用快照上的 .forEach
遍历我的 services
项目,但它似乎没有将新值保存到 Firebase。
这是因为我应该在 $firebaseObject
上使用 $save
吗?
这是我的代码的样子:
var servicesRef = ref.child('services');
servicesRef.on('value', function(snap) {
snap.forEach(function(serviceSnap) {
var item = serviceSnap;
item.name = name.replace(/^\s+|\s+$/g,'');
item.$save();
});
});
感谢任何帮助。提前致谢!
您缺少 item.name.replace 而不是 name.replace:
var item = serviceSnap;
item.name = item.name.replace(/^\s+|\s+$/g,'');
item.$save();
原来我只能在 $firebaseObject
上使用 AngularFire 的 $save()
方法,所以我使用了不同的技术:
var obj = $firebaseObject(servicesRef);
obj.$loaded().then(function() {
angular.forEach(obj, function(value, key) {
var singleServiceRef = servicesRef.child(key);
var serviceObj = $firebaseObject(singleServiceRef);
var name = value.name;
name = name.replace(/^\s+|\s+$/g,'');
serviceObj.name = name;
serviceObj.$save();
});
});
希望这对其他人有帮助。
我正在尝试更新 Firebase 中我的 services
项的所有子项的 "name",以删除所有前导和尾随空格。我正在使用正则表达式来执行此操作,但我似乎无法弄清楚为什么它不起作用。
我正在使用快照上的 .forEach
遍历我的 services
项目,但它似乎没有将新值保存到 Firebase。
这是因为我应该在 $firebaseObject
上使用 $save
吗?
这是我的代码的样子:
var servicesRef = ref.child('services');
servicesRef.on('value', function(snap) {
snap.forEach(function(serviceSnap) {
var item = serviceSnap;
item.name = name.replace(/^\s+|\s+$/g,'');
item.$save();
});
});
感谢任何帮助。提前致谢!
您缺少 item.name.replace 而不是 name.replace:
var item = serviceSnap;
item.name = item.name.replace(/^\s+|\s+$/g,'');
item.$save();
原来我只能在 $firebaseObject
上使用 AngularFire 的 $save()
方法,所以我使用了不同的技术:
var obj = $firebaseObject(servicesRef);
obj.$loaded().then(function() {
angular.forEach(obj, function(value, key) {
var singleServiceRef = servicesRef.child(key);
var serviceObj = $firebaseObject(singleServiceRef);
var name = value.name;
name = name.replace(/^\s+|\s+$/g,'');
serviceObj.name = name;
serviceObj.$save();
});
});
希望这对其他人有帮助。