将项目添加到 Firebase 集合

Add an item to a firebase collection

我需要使用 angularfire (AngularJS)

在 Firebase 数据库中的一个或多个集合中附加一项

例如,如果我有:

users {
    Marcelo: {
        userid: 1
    },
    Javier: {
        userid: 2
    }
}

如何在每个集合中添加一个新项目,得到这样的东西?

users {
    Marcelo: {
        userid: 1
        state: "enabled"
    },
    Javier: {
        userid: 2
        state: "enabled"
    }
}

在此示例中,我们创建了一个 function 以在我们的 object

中插入 param
//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>

没有针对此的特定 AngularFire 操作。但由于 AngularFire 只是构建在 Firebase JavaScript SDK 之上,您可以将其用于 read the data and loop over it and then update each item.

让您入门的简短片段:

var ref = firebase.database().ref("users");
users.once("value", function(snapshot) {
  snapshot.forEach(function(userSnapshot) {
    userSnapshot.ref.update({ state: "enabled" });
  });
});