code: function bindAsObject (vm, key, source, cancelCallback) {
    defineReactive(vm, key, {})
    var cb = source.on('value', function (snapshot) {
      vm[key] = createRecord(snapshot)
    }, cancelCallback)
    vm._wilddogListeners[key] = { value: cb }
  }
docs: Bind a wilddog data source to a key on a vm as an Object.
  
  @param {Vue} vm
  @param {string} key
  @param {Object} source
  @param {function|null} cancelCallback