Evitar que los elementos del alcance escriban en los registros de un usuario diferente

Estaba teniendo éxito con el uso de AngularFire en un escenario donde hay un usuario en mi aplicación.

Ahora que tengo la autenticación en funcionamiento, estoy notando que la asignaciónitems a$scope.items es catastrófico al cambiar de usuario, principalmente debido a la$scope Error al actualizar correctamente.

Leyendo directamente de los documentos ...

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

Necesito que estos sean solo elitems del usuario actualmente autorizado. Así que actualmente, hago esto (si hay una mejor manera, ¡no dudes en decírmelo!)

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

Yo generouserId utilizandoauth.provider yauth.idpor cierto Ahora que mis artículos tienen espacio de nombre en (digamos)user1

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

Agrego articulos a$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' }
  ]
  */

}

El problema

Ahora, si me desconecto y me conecto como otra persona, mágicamente ese usuario tieneeenie meenie miney ymoe porque$scope.items mantuvo la matriz entre el cierre de sesión y el inicio de sesión.

Traté de establecer$scope.items = [] En el evento de cierre de sesión, pero que en realidad vacía todos los registros. Me estoy sacando el pelo. Esto es 0.001% de lo que necesito hacer en mi proyecto y me está tomando todo el fin de semana.

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

Ahora creará con precisión artículos bajo la identificación del usuario. Sin embargo, aún así, una vez que cierre sesión y vuelva a iniciar sesión, esos elementos no se borrarán de$scope.devices. Por lo tanto, solo se agregan a los datos pero bajo el usuario que acaba de iniciar sesión.

Actualizar

Hice muchas pruebas y errores. Probablemente me puse$scope.devices a[] y se movió alrededor de los eventos de inicio de sesión en cada combinación posible. Lo que finalmente funcionó fue el violín de @ hiattp en la respuesta aceptada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta