code: @Nonnull
    public Query select(FieldPath... fieldPaths) {
      QueryOptions newOptions = new QueryOptions(options);
      newOptions.fieldProjections = new ArrayList<>();
  
      if (fieldPaths.length == 0) {
        fieldPaths = new FieldPath[] {FieldPath.DOCUMENT_ID};
      }
  
      for (FieldPath path : fieldPaths) {
        FieldReference fieldReference =
            FieldReference.newBuilder().setFieldPath(path.getEncodedPath()).build();
        newOptions.fieldProjections.add(fieldReference);
      }
  
      return new Query(firestore, path, newOptions);
    }
docs: Creates and returns a new Query instance that applies a field mask to the result and returns
  the specified subset of fields. You can specify a list of field paths to return, or use an
  empty list to only return the references of matching documents.
  
  @param fieldPaths The field paths to include.
  @return The created Query.