code: @Nonnull
    public Query endBefore(@Nonnull DocumentSnapshot snapshot) {
      QueryOptions newOptions = new QueryOptions(options);
      newOptions.fieldOrders = createImplicitOrderBy();
      newOptions.endCursor = createCursor(newOptions.fieldOrders, snapshot, true);
      return new Query(firestore, path, newOptions);
    }
docs: Creates and returns a new Query that ends before the provided document (exclusive). The end
  position is relative to the order of the query. The document must contain all of the fields
  provided in the orderBy of this query.
  
  @param snapshot The snapshot of the document to end before.
  @return The created Query.