docs: function Fireproof(firebaseRef, promise) {
  
    if (!Fireproof.Promise) {
  
      try {
        Fireproof.Promise = Promise;
      } catch(e) {
        throw new Error('You must supply a Promise library to Fireproof!');
      }
  
    } else if (typeof Fireproof.Promise !== 'function') {
      throw new Error('The supplied value of Fireproof.Promise is not a constructor (got ' +
          Fireproof.Promise + ')');
    }
  
    this._ref = firebaseRef;
    if (promise && promise.then) {
      this.then = promise.then.bind(promise);
    } else {
  
      this.then = function(ok, fail) {
  
        return this.once('value', function() {})
        .then(ok || null, fail || null);
  
      };
  
    }
  
  }