toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  final buffer = StringBuffer('TurboFirestoreGenericException: $message');
  buffer.write(' (code: $code)');
  if (operationType != null) {
    buffer.write('\nOperation: $operationType');
  }
  if (path != null) {
    buffer.write('\nCollection: $path');
  }
  if (id != null) {
    buffer.write('\nDocument ID: $id');
  }
  if (fullPath != null) {
    buffer.write('\nPath: $fullPath');
  }
  if (query != null) {
    buffer.write('\nQuery: $query');
  }
  if (documentData != null) {
    try {
      buffer.write('\nDocument Data: ${jsonEncode(documentData)}');
    } catch (_) {
      buffer.write('\nDocument Data: $documentData');
    }
  }
  buffer.write('\nOriginal exception: ${originalException.toString()}');
  if (stackTrace != null) {
    buffer.write('\nStack trace: $stackTrace');
  }
  return buffer.toString();
}