Reputation: 728
I need to append an item in one or more collections in Firebase Database using angularfire (AngularJS)
For example, if I have:
users {
Marcelo: {
userid: 1
},
Javier: {
userid: 2
}
}
How can I append a new item in each collection, getting something like this?
users {
Marcelo: {
userid: 1
state: "enabled"
},
Javier: {
userid: 2
state: "enabled"
}
}
Upvotes: 0
Views: 460
Reputation: 598817
There is no specific AngularFire operation for this. But since AngularFire is just built on top of the Firebase JavaScript SDK, you use that to read the data and loop over it and then update each item.
A short snippet to get you started:
var ref = firebase.database().ref("users");
users.once("value", function(snapshot) {
snapshot.forEach(function(userSnapshot) {
userSnapshot.ref.update({ state: "enabled" });
});
});
Upvotes: 1
Reputation: 2547
In this sample we create a function
to insert param
in our object
//object = users object
//key = state or something else
//value = true or something else
var insertParam = function(object, key, value) {
for (var _key in object) {
object[_key][key] = value;
}
}
var app = angular.module("app", []);
app.controller("ctrl", [
"$scope",
function($scope) {
$scope.users = {
Marcelo: {
userid: 1
},
Javier: {
userid: 2
}
}
var insertParam = function(object, key, value) {
for (var _key in object) {
object[_key][key] = value;
}
}
insertParam($scope.users, "state", true);
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<ul>
<li ng-repeat="(key, option) in users">
{{key}}
<ul>
<li><b>userId:</b> {{option.userid}}</li>
<li><b>state:</b> {{option.state}}</li>
</ul>
</li>
</ul>
</div>
Upvotes: 0