我不想让AngularFire继续添加重复记录,我该如何仅添加用户一次,并且如果已经添加了用户数据,则不再添加同一用户。
我有这样的按钮:
<a class="btn btn-block btn-lg btn-success" href="#" ng-hide="auth.user" ng-click="auth.$login('persona')"><span><i class="fa fa-user fa-lg"></i></span> Login with <strong>Persona</strong></a>
我的控制器具有:
var ref = new Firebase("https://mybase.firebaseio.com/");
$scope.auth = $firebaseSimpleLogin(ref);
var users = new Firebase("https://mybase.firebaseio.com/users");
$scope.uData = $firebase(users);
$scope.auth.$login('persona').then(function(user){
var usersArray = orderByPriorityFilter($scope.uData);
if (_.contains((_.pluck(usersArray, 'uid')),user.uid) == false){$scope.uData.$add(user)}
});
登录用户在登录具有单独控制器后将用户重定向到的部分和部分,如果我尝试将用户数据添加到登录控制器中的数据库(在用户重定向之前),则在数据库中添加了4次相同的用户而不是2。
预先感谢。
$add
方法仅应用于创建(并附加)使用时间顺序增量ID的新记录。如果要覆盖(如果尚未存在记录,则创建),则可以使用$ Save或$ SET方法。
$scope.auth.$login('persona').then(function(user){
var usersArray = orderByPriorityFilter($scope.uData);
if (_.contains((_.pluck(usersArray, 'uid')),user.uid) == false){
$scope.uData.$child(user.uid).$set(user);
}
});