code: @Nonnull
    public Query endAt(@Nonnull DocumentSnapshot snapshot) {
      QueryOptions newOptions = new QueryOptions(options);
      newOptions.fieldOrders = createImplicitOrderBy();
      newOptions.endCursor = createCursor(newOptions.fieldOrders, snapshot, false);
      return new Query(firestore, path, newOptions);
    }
docs: Creates and returns a new Query that ends at the provided document (inclusive). 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 at.
  @return The created Query.