By the end of this tutorial, you’ll know How to use Firebase analytics in a flutter. let’s dive into the details. Before starting do not forget to set up all the configurations needed for Firebase Analytics. You can follow Officials Docs.
Table of Contents
Steps to use Firebase analytics in a Flutter
Understanding user behavior and engagement is crucial for success in today’s competitive app landscape. Firebase Analytics offers a powerful solution for tracking various aspects of user interaction within your Flutter app. In this guide, we’ll delve into the implementation of Firebase Analytics in Flutter, focusing on the AnalyticsPage and AnalyticsEvents classes for efficient tracking.

Create a Flutter Project
If you haven’t already created a Flutter project, run the following commands in your terminal:
flutter create my_flutter_analytics_app
Add Firebase to your Flutter project
Go to the Firebase Console (https://console.firebase.google.com/), create a new project, and follow the setup instructions to add Firebase to your project.
Once you have your google-services.json file, place it in the android/app directory for Android and GoogleService-Info.plist in the ios/Runner directory for iOS.
Add Dependencies
In your pubspec.yaml file, add the Firebase and Crashlytics dependencies:
dependencies:
flutter:
sdk: flutter
firebase_core: ^latest_version
firebase_analytics: ^9.1.11
Run flutter pub get to fetch the dependencies.
Initialize Firebase in your Flutter app
In your main.dart file, initialize Firebase:
import 'package:firebase_core/firebase_core.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
Setting the Scene with AnalyticsPage Class
The AnalyticsPage class is designed to handle screen tracking within your app using Firebase Analytics. Each method within this class corresponds to a specific screen, and it is utilized setCurrentScreen to set the current screen, providing valuable insights into user navigation and engagement.
Create a file called analytics.dart for eg:
import 'package:firebase_analytics/firebase_analytics.dart';
const mob = 'dev';
class AnalyticsPage {
static var analytics = FirebaseAnalytics.instance;
static Future<void>? analyticsLogin() async =>
await analytics.setCurrentScreen(
screenName: '${mob}LoginPage',
);
static Future<void>? analyticsSignUp() async =>
await analytics.setCurrentScreen(screenName: '${mob}SignUpPage');
static Future<void>? analyticsProductDescription({String? slug}) async =>
await analytics.setCurrentScreen(screenName: '${mob}Details$slug');
static Future<void>? analyticsContactUs() async =>
await analytics.setCurrentScreen(screenName: '${mob}ContactUsPage');
static Future<void>? analyticsNoOfRegisterBusiness() async =>
await analytics.setCurrentScreen(screenName: '${mob}eventEditPage');
}
class AnalyticsEvents {
static var analytics = FirebaseAnalytics.instance;
// Login event
static Future<void>? analyticsLogin() async =>
await analytics.logEvent(name: 'RegularLoginEvent', parameters: {
"LoginEvent": "LoginEvent"
});
// Logout event
static Future<void>? analyticsLogout({required String logoutUser}) async =>
await analytics.logEvent(name: 'logout', parameters: {
"logout": logoutUser,
});
// User language event
static Future<void>? analyticsUserLg({required String lg}) async =>
await analytics
.logEvent(name: '${mob} userLanguage', parameters: {"lg": lg});
// Signup event
static Future<void>? analyticsSignup({required String location}) async =>
await analytics.logEvent(name: '${mob}RegularSignupEvent', parameters: {
"SignupEvent": "SingupEvent",
"location": location,
});
// products event
static Future<void>? analyticsBuyProducts() async =>
await analytics.logEvent(name: '${mob}orders');
}
Use the above methods like this:
_validate() {
AnalyticsPage.analyticsLogin();
AnalyticsEvents.analyticsLogin();
if (_formKey.currentState!.validate()) {
// your code here
}
}These methods track user interactions with various app features, such as viewing user profiles, creating businesses, and interacting with social media data.
You can check your Firebase Analytics dashboard for user engagement.

Also, Read Related Tutorials
- Shorebird: The Easy Way to Update Flutter Android Apps
- [Solved] RenderBox was not laid out in Flutter
Conclusion
By integrating the AnalyticsPage and AnalyticsEvents classes into your Flutter app, you gain a robust Firebase Analytics setup. This setup allows you to comprehensively track user interactions and navigation, providing valuable insights for making informed decisions to enhance user engagement and satisfaction.
Implementing Firebase Analytics is a powerful step toward optimizing your app’s performance and user experience. With the right analytics in place, you can make data-driven decisions to refine and improve your Flutter app.
What about askind for permissions for the app tracking? I’ve heard that apparently it’s necessary especially for iOS.