Firebase Analytics Integrations

Google Analytics helps you understand how people use the web and mobile apps. Analytics helps you understand how your users behave, so we can make informed decisions about how to market our app.

Plugin used

firebase_analytics

About Firebase Console

In the Firebase console we can track the real-time user usage, Below are the main core features for tracking the user

  • Users in the last 30 minutes.

  • User's activity over time using a date picker represents inline charts.

  • Track the users by app version.

  • Track users by device Model.

  • User Retention.

Reference Links

Firebase Analytics

Adding Members to the Firebase Console

  • Select the respective Project from the Firebase Console.

  • Beside the project overview option one gear option(settings) will be there tap on that, three option will come, from that select Users and Permissions option as show in below image

  • In Users and Permissions tab select the button Add member it will open a mini dialog, there enter respective user mail ID and select role as Editor as shown in below image, tap on Add member option

  • After Tapping on Add member it will send an firebase invitation mail to respective person, once they accepted it, they can access the firebase project.


Firebase App Creation for Multi-Platforms

  • Select the project from Firebase Console.

  • Project Overview console will open, here we need to create three apps
    for three platforms(IOS, Android and Web), below are the respective steps to create app for different platforms

    Android
    Tap on Add app plus icon and select Android Icon, it will navigate to register android app page, copy paste this package name -> com.dwss.mgramseva in first field as shown in below image, after that tap on register app button, it will generate a google-services.json, successfully app was created, now close this window.


    IOS
    Tap on Add app and select IOS Icon, it will navigate to register IOS app page, copy paste this Apple bundle ID name -> com.dwss.mgramseva in first field as shown in below image, after that tap on register app button, it will generate a googleService-Info.plist, successfully app was created, now close this window.



    Web
    Tap on Add app and select script tag Icon, it will navigate to register Web app page, copy paste this mgramseva name in first field as shown in below image, after that tap on register app button, it will generate html code which consists of firebase keys, successfully app was created, now close this window.

     

Firebase Integration in different Platforms

  • User need to have access to this respective firebase analytics account.

  • Once you have access, navigate to the Firebase console.

  • Select respective project from list of projects.

  • Tap on Project over view option, there you can see all the created Apps as shown in image.

  • Beside the project overview option one gear option(settings) will be there tap on that, three option will come, from that select Project settings,

  • select general tab(by default it is selected only) their we can see all the created as apps shown in below image.

  • Below are the steps for integrating the Firebase for all three platforms(IOS, Android, Web).

Integration With Android

  • In general tab select the Android App, download on the google-services.json as shown in below image.

  • Add this Json file to the android app folder as shown in below image.

Integration With IOS

  • In general tab select the IOS App and download on the GoogleService-Info.plist as shown in below image.

  • Add this plist file to the ios app folder as shown in below image.


Integration With Web

In general tab select the Web App and scroll to the SDK setup and configuration, In that we can find the firebaseConfig object as shown in below, upload that object to S3 bucket using below aws command.

const firebaseConfig = {
  apiKey: "AIzaSyCNeX_MlTZXOVl_7pf5S0hVnd4a******",
  authDomain: "mgramseva-qa-****.firebaseapp.com",
  projectId: "mgramseva-qa-*****",
  storageBucket: "mgramseva-qa-*****.appspot.com",
  messagingSenderId: "1274078******",
  appId: "1:127407896491:web:a3508fdb2a0f045******",
  measurementId: "G-8H6W5D****"};

Command → aws s3 cp path s3://bucket_name/firebaseConfigs.js --acl public-read

Place the below code in respective environment yaml file and replace the src attribute with valid url.

frontend-mgramseva: custom-js-injection: | sub_filter.conf: " sub_filter '<head>' '<head> <script src=https://s3_bucket_path/firebaseConfigs.js type=text/javascript></script> ';"

Below was the reference PR which is used to made dev and QA changes
https://github.com/misdwss/iFix-DevOps/pull/286/files

 

 

Methods Utilized to log the Data in Firebase

By default firebase track the app version, device model, and location. Below methods are used to track the screen data.

static FirebaseAnalytics analytics = FirebaseAnalytics(); static FirebaseAnalyticsObserver observer = FirebaseAnalyticsObserver(analytics: analytics); /// Add this line in Material App widget to track the screen navigation navigatorObservers: <NavigatorObserver>[observer],

 

if (kIsWeb) { FirebaseAnalytics analytics = FirebaseAnalytics(); analytics.logEvent(name: "screen_view", parameters: { 'firebase_screen': "$path", 'screen_name': "$path", }); }

 

 

Files Path

https://github.com/misdwss/punjab-mgramseva/blob/master/frontend/mgramseva/lib/main.dart https://github.com/misdwss/punjab-mgramseva/blob/master/frontend/mgramseva/web/index.html https://github.com/misdwss/punjab-mgramseva/blob/master/frontend/mgramseva/android/app/google-services.json