code: def order_by(self, field_path, direction=ASCENDING):
          
          field_path_module.split_field_path(field_path)  # raises
  
          order_pb = self._make_order(field_path, direction)
  
          new_orders = self._orders + (order_pb,)
          return self.__class__(
              self._parent,
              projection=self._projection,
              field_filters=self._field_filters,
              orders=new_orders,
              limit=self._limit,
              offset=self._offset,
              start_at=self._start_at,
              end_at=self._end_at,
          )
docs: Modify the query to add an order clause on a specific field.
  
          See :meth:`~.firestore_v1beta1.client.Client.field_path` for
          more information on **field paths**.
  
          Successive :meth:`~.firestore_v1beta1.query.Query.order_by` calls
          will further refine the ordering of results returned by the query
          (i.e. the new "order by" fields will be added to existing ones).
  
          Args:
              field_path (str): A field path (``.``-delimited list of
                  field names) on which to order the query results.
              direction (Optional[str]): The direction to order by. Must be one
                  of :attr:`ASCENDING` or :attr:`DESCENDING`, defaults to
                  :attr:`ASCENDING`.
  
          Returns:
              ~.firestore_v1beta1.query.Query: An ordered query. Acts as a
              copy of the current query, modified with the newly added
              "order by" constraint.
  
          Raises:
              ValueError: If ``field_path`` is invalid.
              ValueError: If ``direction`` is not one of :attr:`ASCENDING` or
                  :attr:`DESCENDING`.