start static method

DVAnalyticsRuntime start({
  1. required DVAnalyticsSettings settings,
  2. required FutureOr<DVDatabaseAdapter> database(),
  3. List<DVAnalyticsProvider> providers = const <DVAnalyticsProvider>[],
  4. Set<String> sensitiveFields = const <String>{},
})

Starts the pipeline over the database database opens, and makes it the process's DV.Analytics.

Returns at once. The database is opened, the install id read or made, the stored consent loaded, Feature Flags connected when DVAnalyticsSettings.flagExposureCategory is set, and the analytics adapters installed into DVPrivacyRuntime -- in that order, and before any tracked event is judged.

Implementation

static DVAnalyticsRuntime start({
  required DVAnalyticsSettings settings,
  required FutureOr<DVDatabaseAdapter> Function() database,
  List<DVAnalyticsProvider> providers = const <DVAnalyticsProvider>[],
  Set<String> sensitiveFields = const <String>{},
}) {
  final DVAnalyticsRuntime runtime =
      DVAnalyticsRuntime._(settings, providers, sensitiveFields);
  _current = runtime;
  // Handled here so a pipeline that cannot start is reported through
  // track's result rather than as an unhandled error in the zone.
  unawaited(runtime._pipeline.future.then((_) {}, onError: (Object _) {}));
  unawaited(runtime._start(database));
  return runtime;
}