Evitar que itens no escopo sejam gravados em registros de usuário diferentes

Eu estava tendo sucesso com o uso do AngularFire em um cenário em que há um usuário no meu aplicativo.

Agora que tenho autenticação ativa, estou percebendo que atribuiritems para$scope.items é catastrófico ao trocar de usuários, principalmente devido à$scope não atualizar corretamente.

Lendo diretamente dos documentos ...

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

Eu preciso que estes sejam apenas oitems do usuário atualmente autorizado. Então, atualmente, eu faço isso (se há uma maneira melhor, não hesite em me dizer!)

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

Eu gerouserId usandoauth.provider eauth.id, btw. Agora que meus itens são namespaced em (digamos)user1

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

Eu adiciono itens para$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' }
  ]
  */

}

O problema

Agora, se eu fizer logout e login como outra pessoa, magicamente esse usuárioeenie meenie miney emoe Porque$scope.items manteve a matriz entre logout e login.

Tentei definir$scope.items = [] no evento de logout, mas isso na verdade esvazia todos os registros. Estou tirando meu cabelo. Isso é 0,001% do que eu preciso fazer no meu projeto e está levando todo o meu final de semana.

Atualizar Novo método

  $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');
  });

Agora, criará itens com precisão sob o ID do usuário. No entanto, ainda assim, quando você faz logout e login novamente, esses itens não são removidos de$scope.devices. Portanto, eles apenas se adicionam aos dados, mas sob o usuário recém-conectado.

Atualizar

Eu fiz muita tentativa e erro. Eu provavelmente defini$scope.devices para[] e movido em torno de eventos de login em todas as combinações possíveis. O que eventualmente funcionou foi o violino de @hiattp na resposta aceita.

questionAnswers(2)

yourAnswerToTheQuestion