Bird
Raised Fist0
Android Kotlinmobile~20 mins

Firebase Analytics in Android Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Firebase Analytics Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
Logging a Custom Event with Parameters
You want to log a custom event named "purchase_complete" with parameters item_id and price using Firebase Analytics in Kotlin. Which code snippet correctly logs this event?
Android Kotlin
val analytics = Firebase.analytics
// Log event here
A
analytics.logEvent("purchase_complete") {
  param("item_id", "sku123")
  param("price", 9.99)
}
Banalytics.logEvent("purchase_complete", mapOf("item_id" to "sku123", "price" to 9.99))
C
val bundle = Bundle().apply {
  putString("item_id", "sku123")
  putDouble("price", 9.99)
}
analytics.logEvent("purchase_complete", bundle)
Danalytics.logEvent("purchase_complete", Bundle().putString("item_id", "sku123"))
Attempts:
2 left
💡 Hint
Remember that Firebase Analytics expects a Bundle object for event parameters in Kotlin.
❓ lifecycle
intermediate
1:30remaining
When to Initialize Firebase Analytics
In an Android app using Kotlin, where is the best place to initialize Firebase Analytics to ensure it is ready for logging events throughout the app?
AIn the <code>Application</code> class <code>onCreate()</code> method
BInside the <code>onCreate()</code> method of the main <code>Activity</code>
CInside the <code>onStart()</code> method of every <code>Activity</code>
DRight before logging each event
Attempts:
2 left
💡 Hint
Think about initializing once for the whole app lifecycle.
📝 Syntax
advanced
1:30remaining
Correct Syntax for Setting User Property
Which Kotlin code snippet correctly sets a user property named "favorite_genre" with value "sci-fi" using Firebase Analytics?
Android Kotlin
val analytics = Firebase.analytics
// Set user property here
Aanalytics.setUserProperty("favorite_genre", value = "sci-fi")
Banalytics.setUserProperty("favorite_genre", "sci-fi")
Canalytics.setUserProperty("favorite_genre" to "sci-fi")
Danalytics.setUserProperty(name = "favorite_genre", "sci-fi")
Attempts:
2 left
💡 Hint
Check the method signature for setUserProperty in Firebase Analytics Kotlin API.
❓ navigation
advanced
2:00remaining
Tracking Screen Views Correctly
You want to track screen views in your Android app using Firebase Analytics. Which approach correctly logs the screen name "HomeScreen" when the user navigates to it?
Aanalytics.setCurrentScreen(this, "HomeScreen", "MainActivity")
B
analytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
  param(FirebaseAnalytics.Param.SCREEN_NAME, "HomeScreen")
}
C
analytics.logEvent("screen_view", Bundle().apply {
  putString("screen_name", "HomeScreen")
})
Danalytics.setCurrentScreen(this, "HomeScreen", null)
Attempts:
2 left
💡 Hint
Check the official Firebase method for setting current screen with activity context.
🔧 Debug
expert
2:30remaining
Diagnosing Missing Analytics Events
You notice that some custom events are not appearing in Firebase Analytics dashboard after logging them in your Kotlin app. Which of the following is the MOST likely cause?
AYou did not call <code>FirebaseApp.initializeApp(context)</code> explicitly in your Application class
BYou logged events before initializing Firebase Analytics instance
CYou forgot to add the Firebase Analytics dependency in your build.gradle file
DYou used event names longer than 40 characters or with invalid characters
Attempts:
2 left
💡 Hint
Firebase Analytics enforces naming rules for events.

Practice

(1/5)
1. What is the main purpose of Firebase Analytics in an Android app?
easy
A. To manage app permissions
B. To store user passwords securely
C. To create user interface layouts
D. To track user actions and events within the app

Solution

  1. Step 1: Understand Firebase Analytics role

    Firebase Analytics is designed to collect data about user interactions and events in the app.
  2. Step 2: Compare options with purpose

    Only To track user actions and events within the app describes tracking user actions, which matches Firebase Analytics' main use.
  3. Final Answer:

    To track user actions and events within the app -> Option D
  4. Quick Check:

    Firebase Analytics tracks user actions = A [OK]
Hint: Firebase Analytics tracks events and user behavior [OK]
Common Mistakes:
  • Confusing analytics with security or UI tasks
  • Thinking it manages app permissions
  • Assuming it stores sensitive data like passwords
2. Which is the correct Kotlin syntax to log a custom event named purchase with Firebase Analytics?
easy
A. firebaseAnalytics.logEvent("purchase", Bundle())
B. firebaseAnalytics.logEvent(purchase, null)
C. firebaseAnalytics.logEvent("purchase")
D. firebaseAnalytics.logEvent('purchase', null)

Solution

  1. Step 1: Recall logEvent method signature

    logEvent requires event name as String and a Bundle for parameters (can be empty).
  2. Step 2: Check options for correct syntax

    firebaseAnalytics.logEvent("purchase", Bundle()) uses a String event name and an empty Bundle(), which is valid Kotlin syntax.
  3. Final Answer:

    firebaseAnalytics.logEvent("purchase", Bundle()) -> Option A
  4. Quick Check:

    logEvent needs event name string and Bundle = D [OK]
Hint: Use event name as string and Bundle() for parameters [OK]
Common Mistakes:
  • Omitting quotes around event name
  • Passing null instead of Bundle()
  • Calling logEvent with only one argument
3. Given this Kotlin code snippet, what will be logged as the event name?
val bundle = Bundle()
bundle.putString("item", "book")
firebaseAnalytics.logEvent("select_content", bundle)
medium
A. "item"
B. "select_content"
C. "book"
D. No event will be logged

Solution

  1. Step 1: Identify event name argument

    The first argument to logEvent is the event name string "select_content".
  2. Step 2: Understand bundle role

    The bundle contains parameters, here "item" with value "book", but event name is separate.
  3. Final Answer:

    "select_content" -> Option B
  4. Quick Check:

    Event name is first argument = C [OK]
Hint: Event name is first string argument in logEvent [OK]
Common Mistakes:
  • Confusing parameter keys with event name
  • Thinking bundle keys become event names
  • Assuming no event logs without explicit call
4. What is wrong with this Kotlin code for logging an event?
val bundle = Bundle()
bundle.putString("level", "5")
firebaseAnalytics.logEvent(level, bundle)
medium
A. The variable 'level' is not defined as a String event name
B. Bundle cannot contain strings
C. logEvent requires only one argument
D. Bundle should be null instead of a Bundle object

Solution

  1. Step 1: Check event name argument

    logEvent expects a String event name, but 'level' is used as a variable, which is undefined here.
  2. Step 2: Validate bundle usage

    Bundle usage is correct; it can contain strings and is passed properly.
  3. Final Answer:

    The variable 'level' is not defined as a String event name -> Option A
  4. Quick Check:

    Event name must be a string literal or defined string = B [OK]
Hint: Event name must be a string, not an undefined variable [OK]
Common Mistakes:
  • Passing undefined variables as event names
  • Misunderstanding Bundle contents
  • Using wrong number of arguments in logEvent
5. You want to log a purchase event with item name and price using Firebase Analytics in Kotlin. Which code correctly logs this event with parameters?
hard
A. val bundle = Bundle() bundle.putString("item_name", "shoes") bundle.putDouble("price", "59.99") firebaseAnalytics.logEvent("purchase", bundle)
B. val bundle = Bundle() bundle.putString("item_name", "shoes") bundle.putFloat("price", "59.99f") firebaseAnalytics.logEvent("purchase", bundle)
C. val bundle = Bundle() bundle.putString("item_name", "shoes") bundle.putString("price", "59.99") firebaseAnalytics.logEvent("purchase", bundle)
D. val bundle = Bundle() bundle.putInt("item_name", 59) bundle.putDouble("price", 59.99) firebaseAnalytics.logEvent("purchase", bundle)

Solution

  1. Step 1: Check parameter types for Firebase Analytics

    Firebase Analytics Bundle supports putString for strings; price should be string or long, not double or float.
  2. Step 2: Analyze options for correct types

    val bundle = Bundle() bundle.putString("item_name", "shoes") bundle.putString("price", "59.99") firebaseAnalytics.logEvent("purchase", bundle) uses putString for both item_name and price, which is safe and accepted for Firebase Analytics parameters.
  3. Final Answer:

    val bundle = Bundle() bundle.putString("item_name", "shoes") bundle.putString("price", "59.99") firebaseAnalytics.logEvent("purchase", bundle) -> Option C
  4. Quick Check:

    Use putString for parameters to avoid type issues = A [OK]
Hint: Use putString for all parameters to ensure compatibility [OK]
Common Mistakes:
  • Using putDouble or putFloat which may cause errors
  • Putting numbers in wrong parameter keys
  • Using putInt for string values
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard