code: function(key) {
            var self = this;
            var cache = self._indexCache;
            // evaluate whether our key is cached and, if so, whether it is up to date
            if( !cache.hasOwnProperty(key) || self.$keyAt(cache[key]) !== key ) {
              // update the hashmap
              var pos = self.$list.findIndex(function(rec) { return self.$$getKey(rec) === key; });
              if( pos !== -1 ) {
                cache[key] = pos;
              }
            }
            return cache.hasOwnProperty(key)? cache[key] : -1;
          }
docs: The inverse of $keyAt, this method takes a Firebase key (record.$id) and returns the
  index in the array where that record is stored. If the record is not in the array,
  this method returns -1.
  
  @param {String} key
  @returns {int} -1 if not found