promiseEvents = (watchArray, options) => {
    const inputAsFunc = createCallable(watchArray)
    const prevData = inputAsFunc(options, firebase)
    const queryConfigs = getEventsFromInput(prevData)
    // TODO: Handle calling with non promise queries (must be once or first_child)
    return Promise.all(
      queryConfigs.map((queryConfig) =>
        queryActions.watchEvent(firebase, dispatch, queryConfig)
      )
    )
  }
Similar to the firebaseConnect Higher Order Component but
presented as a function (not a React Component). Useful for populating
your redux state without React, e.g., for server side rendering. Only
`once` type should be used as other query types such as `value` do not
return a Promise.
@param {Array} watchArray - Array of objects or strings for paths to sync
from Firebase. Can also be a function that returns the array. The function
is passed the props object specified as the next parameter.
@param {object} options - The options object that you would like to pass to
your watchArray generating function.
@returns {Promise} Resolves with an array of watchEvent results