检查AngularFire中的数据唯一性

时间:2013-05-31 01:31:42

标签: javascript angularjs firebase angularjs-controller angularfire

使用AngularFire,如果“name”是唯一的,我想仅在angularFireCollection中添加一个对象。我的数据结构如下:

- ClientList
    - dsk32923k   <-Random unique ID created by AngularFire
        - name : Brian
        - birthday : 3/9/82
          ...
    - skjdsjkl3  
        - name : John
        - birthday : 6/3/90
          ...

例如,我希望在将数据对象添加到ClientList之前验证“Brian”是唯一的名称。我想在Angular控制器中完成这个。实现这一目标的“角度方式”是什么?

1 个答案:

答案 0 :(得分:2)

使用angularFireCollection执行此操作有点困难而不迭代所有条目以检查重复项。使用angularFire可能更容易,并使用名称作为唯一键:

function MyController($scope, angularFire) {
  var url = "https://<my-firebase>.firebaseio.com/ClientList";
  var promise = angularFire(url, $scope, "users", {});
  promise.then(function() {
    $scope.addUser = function(user) {
      if ($scope.users[user.name]) {
        throw new Error("User already exists!");
      } else {
        $scope.users[name] = user;
      }
    }
  });
}

希望这有帮助!