groveman_analytics_firebase 0.1.0 copy "groveman_analytics_firebase: ^0.1.0" to clipboard
groveman_analytics_firebase: ^0.1.0 copied to clipboard

Groveman analytics tree that sends events to Firebase Analytics.

Groveman Analytics Firebase #

pub License: MIT

AnalyticsTree for groveman_analytics that sends events to Firebase Analytics.

Usage #

First, configure Firebase Analytics, see the documentation.

Add it in your pubspec.yaml:

dependencies:
  firebase_analytics:
  firebase_core:
  groveman_analytics:
  groveman_analytics_firebase:

Import it where you want to use it e.g, in your main file.

import 'package:groveman_analytics/groveman_analytics.dart';
import 'package:groveman_analytics_firebase/groveman_analytics_firebase.dart';

Initialize and plant the tree on start of your application.

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  GrovemanAnalytics.plantTree(FirebaseAnalyticsTree(FirebaseAnalytics.instance));
  runApp(const MyApp());
}

Define your events and start tracking:

class PurchaseCompletedEvent extends AnalyticsEvent {
  PurchaseCompletedEvent(this.value);

  final double value;

  @override
  String get eventName => 'purchase_completed';

  @override
  Map<String, dynamic>? get properties => {'value': value};
}

await GrovemanAnalytics.track(PurchaseCompletedEvent(99.9));

Note: Firebase Analytics event names must be ≤ 40 characters and property names ≤ 40 characters. Property values are automatically converted to String for setUserProperty.

API mapping #

AnalyticsTree Firebase Analytics
track(event) logEvent(name, parameters)
identify(userId, properties) setUserId(id) + setUserProperty(name, value) per property
setSuperProperties(properties) setDefaultEventParameters(parameters)
clearSuperProperties() setDefaultEventParameters(null)
enable() setAnalyticsCollectionEnabled(true)
disable() setAnalyticsCollectionEnabled(false)
reset() resetAnalyticsData()

Super properties #

Sets default parameters automatically included in every event logged to Firebase Analytics.

Note: setSuperProperties(), clearSuperProperties(), and reset() are not supported on web by Firebase Analytics and are no-ops on that platform.

await GrovemanAnalytics.setSuperProperties({
  'app_version': '1.0.0',
  'environment': 'production',
});

// Clears all default event parameters
await GrovemanAnalytics.clearSuperProperties();

User identification #

await GrovemanAnalytics.identify(
  'user_123',
  properties: {'plan': 'pro'},
);

User properties are set via setUserProperty. All values are converted to String.

Enable and disable data collection #

// User declined consent — disables analytics collection
await GrovemanAnalytics.disable();

// User accepted consent — re-enables analytics collection
await GrovemanAnalytics.enable();

📝 License #

Copyright © 2026 Kauê Martins.
This project is MIT licensed.