import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import '../firebase_options_prod.dart' as prod;
import '../firebase_options_stage.dart' as stage;
import '../firebase_options_dev.dart' as dev;
@pragma('vm:entry-point')
Future<void> _backgroundHandler(RemoteMessage message) async {
debugPrint('Background message: ${message.data}');
}
final FirebaseAnalytics firebaseAnalytics = FirebaseAnalytics.instance;
final firebaseAnalyticsObserver = FirebaseAnalyticsObserver(
analytics: firebaseAnalytics,
);
Future<void> configureFirebase() async {
final firebaseOptions = switch (appFlavor?.toLowerCase()) {
'prod' => prod.DefaultFirebaseOptions.currentPlatform,
'stage' => stage.DefaultFirebaseOptions.currentPlatform,
'develop' => dev.DefaultFirebaseOptions.currentPlatform,
_ => throw UnsupportedError('Invalid flavor: $appFlavor'),
};
await Firebase.initializeApp(name: appFlavor, options: firebaseOptions);
//TODO: As default the analytics is disabled, but it should be enabled when the user accepts the terms and conditions
FirebaseAnalytics.instance.setAnalyticsCollectionEnabled(true);
FirebaseAnalytics.instance.setConsent(
analyticsStorageConsentGranted: true,
adStorageConsentGranted: true,
adUserDataConsentGranted: true,
adPersonalizationSignalsConsentGranted: true,
);
FirebaseMessaging.onBackgroundMessage(_backgroundHandler);
}