code: @Nullable
    public Map<String, Object> getData() {
      if (fields == null) {
        return null;
      }
  
      Map<String, Object> decodedFields = new HashMap<>();
      for (Map.Entry<String, Value> entry : fields.entrySet()) {
        Object decodedValue = decodeValue(entry.getValue());
        decodedValue = convertToDateIfNecessary(decodedValue);
        decodedFields.put(entry.getKey(), decodedValue);
      }
      return decodedFields;
    }
docs: Returns the fields of the document as a Map or null if the document doesn't exist. Field values
  will be converted to their native Java representation.
  
  @return The fields of the document as a Map or null if the document doesn't exist.