code: def _to_protobuf(self):
          
          projection = self._normalize_projection(self._projection)
          orders = self._normalize_orders()
          start_at = self._normalize_cursor(self._start_at, orders)
          end_at = self._normalize_cursor(self._end_at, orders)
  
          query_kwargs = {
              "select": projection,
              "from": [
                  query_pb2.StructuredQuery.CollectionSelector(
                      collection_id=self._parent.id
                  )
              ],
              "where": self._filters_pb(),
              "order_by": orders,
              "start_at": _cursor_pb(start_at),
              "end_at": _cursor_pb(end_at),
          }
          if self._offset is not None:
              query_kwargs["offset"] = self._offset
          if self._limit is not None:
              query_kwargs["limit"] = wrappers_pb2.Int32Value(value=self._limit)
  
          return query_pb2.StructuredQuery(**query_kwargs)
docs: Convert the current query into the equivalent protobuf.
  
          Returns:
              google.cloud.firestore_v1beta1.types.StructuredQuery: The
              query protobuf.