logEvent method

  1. @override
Future<void> logEvent({
  1. required AnalyticsEvent e,
})
override

Implementation

@override
Future<void> logEvent({required AnalyticsEvent e}) async {
  if (!isReady) {
    throw Exception('$providerName: Firebase Analytics is not ready');
  }

  if (!isAnalyticsEnabled) {
    logger.debug(
      this,
      '$providerName: Analytics is disabled, event will not be logged',
    );
    return;
  }

  logger.debug(
    this,
    '$providerName: Logging event: ${e.name} and parameters: ${e.parameters}',
  );

  await instance
      ?.logEvent(
    name: e.name,
    parameters: e.parameters,
  )
      .onError((error, stackTrace) {
    logger.error(
      this,
      '$providerName: $error',
      error: error,
      stackTrace: stackTrace,
    );
  }).then((value) {
    logger.debug(
      this,
      '$providerName: Event logged successfully',
    );
  });
}