Firebase Analytics reports are accessible from the Firebase Console under the Analytics section. The Dashboard shows an overview of active users, events, and revenue. The Events report lists all logged events with counts and parameters. Reports have a 24-48 hour processing delay, so recently logged events may not appear immediately. Use DebugView for real-time event verification during development.
Navigating and Understanding Firebase Analytics Reports
Firebase Analytics automatically tracks key metrics like active users, session duration, and screen views. It also records custom events you log with logEvent. This tutorial walks you through the Firebase Console's Analytics section, explains each report type, shows you how to use DebugView for real-time testing, and covers linking to BigQuery for SQL-based analysis on raw event data.
Prerequisites
- A Firebase project with Google Analytics enabled
- Firebase Analytics initialized in your app (getAnalytics on web, or Firebase SDK on mobile)
- At least some user activity or test events logged
- Access to the Firebase Console with Editor or Viewer role
Step-by-step guide
Open the Analytics Dashboard
Open the Analytics Dashboard
Go to the Firebase Console (console.firebase.google.com), select your project, and click Analytics in the left sidebar. The Dashboard shows a high-level overview: active users in the last 30 minutes, total users for the selected period, average engagement time, and revenue (if applicable). Use the date picker in the top-right to change the reporting period.
Expected result: The Analytics Dashboard loads with overview cards showing active users, engagement, and event counts.
Review the Events report
Review the Events report
Click Events in the Analytics sidebar. This report lists every event Firebase has recorded, including automatic events (first_open, session_start, screen_view) and custom events you logged with logEvent. Each row shows the event count, unique users, and revenue. Click any event to see its parameters, user breakdown, and trends over time.
Expected result: A table of all events with counts and user numbers appears. Clicking an event shows detailed parameter breakdowns.
Explore the Users report and user properties
Explore the Users report and user properties
The User reports section shows demographics, interests, and user properties. User properties are custom attributes you set with setUserProperties (like subscription_tier or preferred_language). These let you segment reports and build audiences. Firebase also tracks default properties like device type, OS version, country, and app version.
1// Setting a user property (web example)2import { getAnalytics, setUserProperties } from 'firebase/analytics'34const analytics = getAnalytics()5setUserProperties(analytics, {6 subscription_tier: 'pro',7 preferred_language: 'en'8})Expected result: User properties appear in the Analytics Console under User Properties and can be used to filter any report.
Use DebugView for real-time event testing
Use DebugView for real-time event testing
The standard Analytics reports have a 24-48 hour delay. DebugView shows events in real-time, making it essential during development. Enable debug mode on web by installing the Google Analytics Debugger Chrome extension, or by setting the debug_mode parameter. Events from debug devices appear in DebugView within seconds.
1// Enable debug mode programmatically (web)2import { initializeApp } from 'firebase/app'3import { getAnalytics, setAnalyticsCollectionEnabled } from 'firebase/analytics'45const app = initializeApp({ /* config */ })6const analytics = getAnalytics(app)78// Or use the Chrome extension: Google Analytics Debugger9// Or add ?debug_mode=true to your URL in developmentExpected result: Events appear in the DebugView section within seconds, showing event name, timestamp, and all parameters.
Build audiences for targeted analysis
Build audiences for targeted analysis
Audiences are groups of users defined by conditions on events and properties. For example, create an audience of users who triggered 'add_to_cart' but not 'complete_purchase' in the last 7 days. Audiences can be used in Firebase reports, Remote Config, Cloud Messaging, and Google Ads for targeted campaigns.
Expected result: Audiences appear in the Audiences section and begin populating with matching users within 24-48 hours.
Link to BigQuery for advanced SQL analysis
Link to BigQuery for advanced SQL analysis
For analysis beyond what the Firebase Console provides, link your Firebase project to BigQuery. Once linked, Firebase exports raw event data daily into BigQuery tables named events_YYYYMMDD. You can then write SQL queries to analyze funnels, retention, and custom metrics. The export is free; BigQuery charges apply for queries.
1-- Example BigQuery query: top events by count2SELECT3 event_name,4 COUNT(*) AS event_count,5 COUNT(DISTINCT user_pseudo_id) AS unique_users6FROM7 `your-project.analytics_123456789.events_*`8WHERE9 _TABLE_SUFFIX BETWEEN '20260301' AND '20260328'10GROUP BY event_name11ORDER BY event_count DESC12LIMIT 20Expected result: Raw event data is available in BigQuery for SQL-based analysis with full parameter details.
Complete working example
1// src/lib/analytics.ts2import {3 getAnalytics,4 logEvent,5 setUserProperties,6 setUserId7} from 'firebase/analytics'89const analytics = getAnalytics()1011// Track a custom event12export function trackEvent(13 eventName: string,14 params?: Record<string, string | number>15) {16 logEvent(analytics, eventName, params)17}1819// Track screen views for SPA routing20export function trackScreenView(screenName: string) {21 logEvent(analytics, 'screen_view', {22 firebase_screen: screenName,23 firebase_screen_class: screenName24 })25}2627// Set user properties for segmentation28export function setUserProps(props: Record<string, string>) {29 setUserProperties(analytics, props)30}3132// Set user ID for cross-device tracking33export function setAnalyticsUserId(uid: string) {34 setUserId(analytics, uid)35}3637// Common e-commerce events38export function trackPurchase(value: number, currency: string, items: any[]) {39 logEvent(analytics, 'purchase', {40 value,41 currency,42 items43 })44}4546export function trackAddToCart(itemId: string, itemName: string, value: number) {47 logEvent(analytics, 'add_to_cart', {48 items: [{ item_id: itemId, item_name: itemName, price: value }]49 })50}Common mistakes when viewing Firebase Analytics Reports
Why it's a problem: Expecting events to appear in reports immediately — Analytics has a 24-48 hour processing delay
How to avoid: Use DebugView for real-time event verification during development. Production reports populate within 24-48 hours after events are logged.
Why it's a problem: Creating too many custom events (over 500 unique event names) which hits the Firebase Analytics limit
How to avoid: Use event parameters to add detail instead of creating separate events. For example, use one 'button_click' event with a 'button_name' parameter instead of 'login_button_click', 'signup_button_click', etc.
Why it's a problem: Not enabling Google Analytics when creating the Firebase project, resulting in no Analytics data
How to avoid: Go to Firebase Console > Project Settings > Integrations > Google Analytics and link or enable it. Some features require re-deploying your app with the analytics SDK initialized.
Best practices
- Use DebugView during development to verify events appear with the correct parameters before checking production reports
- Follow Firebase's recommended event naming conventions (snake_case, max 40 characters) for consistency
- Set user properties early in the session for accurate audience segmentation
- Use Audiences to create user segments that can be targeted with Remote Config and Cloud Messaging
- Link to BigQuery early in your project — historical data before linking is not exported retroactively
- Review the automatically collected events before creating custom ones — Firebase may already track what you need
- For complex analytics pipelines that combine Firebase data with other sources, RapidDev can help build a unified data warehouse and reporting dashboard
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
Explain the Firebase Analytics reports available in the Firebase Console. Cover the Dashboard, Events report, User properties, Audiences, and DebugView. Show me how to log a custom event with parameters and how to write a BigQuery SQL query to analyze the top events for the last 30 days.
Set up Firebase Analytics in my web app with custom event tracking. I need functions to track screen views, button clicks with parameters, and e-commerce events (add_to_cart, purchase). Also show me how to enable DebugView for testing and how to set user properties for audience segmentation.
Frequently asked questions
Why are my events not showing in the Firebase Analytics reports?
Analytics reports have a 24-48 hour processing delay. If your events are new, wait at least a full day. To verify events immediately, use DebugView. Also check that getAnalytics() is called in your app and that Google Analytics is enabled in your Firebase project settings.
Is Firebase Analytics free?
Yes. Firebase Analytics (Google Analytics for Firebase) is completely free with unlimited reporting, regardless of your Firebase plan. BigQuery exports are also free; you only pay for BigQuery query processing.
What is the difference between Firebase Analytics and Google Analytics 4?
They are the same product. Firebase Analytics is the Firebase-branded interface for Google Analytics 4 (GA4). Data flows to the same backend, and you can access the same data from both the Firebase Console and the GA4 Console.
How many custom events can I create?
Firebase Analytics supports up to 500 unique event names per project. Each event can have up to 25 custom parameters. Use parameters to add detail rather than creating many separate events.
Can I delete or reset Analytics data?
You cannot delete individual events, but you can reset Analytics by unlinking and relinking Google Analytics in project settings. This creates a new data stream and you lose historical data. For GDPR deletion requests, use the GA4 user deletion API.
How do I track page views in a single-page application?
Firebase does not automatically track route changes in SPAs. Call logEvent(analytics, 'screen_view', { firebase_screen: 'PageName' }) on each route change. With React Router, use a useEffect hook that fires on location changes.
What is the data retention period for Firebase Analytics?
The default retention period is 14 months, configurable up to 50 months in GA4 settings. For longer retention, link to BigQuery where data is stored indefinitely.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation