Запретить запись элементов в области видимости в записи другого пользователя

Я имел успех с использованием AngularFire в сценарии, где в моем приложении есть один пользователь.

Теперь, когда у меня установлена аутентификация, яЯ заметил, что назначениеitems в$scope.items катастрофично при переключении пользователей, в основном из-за$scope не удается обновить правильно.

Чтение прямо из документов ...

var ref = new Firebase('https://.firebaseio.com/items');
angularFire(ref, $scope, 'items');

Мне нужно, чтобы это было толькоitems авторизованного пользователя. Так что в настоящее время я делаю это (если естьлучший способ, нестесняйтесь сказать мне!)

var ref = new Firebase('https://.firebaseio.com/items/userId');
angularFire(ref, $scope, 'items');

Я генерируюuserId с помощьюauth.provider а такжеauth.idкстати Теперь, когда мои предметы расположены в пространстве имен (пустьскажите)user1

var ref = new Firebase('https://.firebaseio.com/items/[user1id]');
angularFire(ref, $scope, 'items');

Я добавляю предметы в$scope.items

$scope.create = function(item) {

  $scope.items.push(item)
  /* Pretend the user adds these from the interface.
  [
    { name: 'eenie' },
    { name: 'meenie' },
    { name: 'miney' },
    { name: 'moe' }
  ]
  */

}

Эта проблема

Теперь, если я просто выйду и войду как кто-то другой, волшебным образом этот пользовательeenie meenie miney а такжеmoe так как$scope.items провел массив между выходом из системы и входом в систему.

Я пытался установить$scope.items = [] на событие выхода из системы, но это фактически очищает все записи. Я'Я выдергиваю мои волосы. Это 0,001% от того, что мне нужно сделать в моем проекте, и этоберу все мои выходные.

Обновить Новый метод

  $scope.create = function() {
    $scope.selectedDevice = {
      name: 'New Device',
      userId: $scope.user.provider + $scope.user.id
    };
    return $scope.devices.push($scope.selectedDevice);
  };

  $scope.$on('angularFireAuth:login', function(evt, user) {
    var promise, ref;
    ref = new Firebase('https://mysite.firebaseio.com/users/' + (user.provider + user.id) + '/registry/');
    promise = angularFire(ref, $scope, 'devices');
  });

Теперь он будет точно создавать элементы под пользователяИдентификатор Тем не менее, после выхода и повторного входа эти элементы не удаляются из$scope.devices, Следовательно, они просто добавляют себя к данным, но под новым пользователем.

Обновить

Я сделал много проб и ошибок. Я наверное поставил$scope.devices в[] и перемещал события входа в систему в каждой возможной комбинации. То, что в итоге сработало, было @hiattp 'трезвый в принятом ответе.

Ответы на вопрос(2)

Ваш ответ на вопрос