code: function(indexOrItem) {
            this._assertNotDestroyed('$remove');
            var key = this.$keyAt(indexOrItem);
            if( key !== null ) {
              var ref = this.$ref().ref().child(key);
              return $wilddogUtils.doRemove(ref).then(function() {
                return ref;
              });
            }
            else {
              return $wilddogUtils.reject('Invalid record; could not determine key for '+indexOrItem);
            }
          }
docs: Pass either an existing item in this array or the index of that item and it will
  be removed both locally and in Wilddog. This should be used in place of
  Array.prototype.splice for removing items out of the array, as calling splice
  will not update the value on the server.
  
  Returns a future which is resolved when the data has successfully removed from the
  server. The resolve callback will be passed a Wilddog ref representing the deleted
  element. If passed an invalid index or an object which is not a record in this array,
  the promise will be rejected.
  
  @param {int|object} indexOrItem
  @returns a promise which resolves after data is removed