Skip to main content
Mobile Launcher
First App Launch in 30 minutes

Firebase Integration

Configure Firebase for Analytics, Crashlytics, and Push Notifications in your Expo app

Firebase Integration for Expo

Firebase is already installed and fully integrated into the boilerplate. This guide shows you how to create your own Firebase project and connect it to the app.

Firebase requires native code and will not work with Expo Go. You'll need a development build.

What's Included

  • Analytics: Track user behavior and events
  • Crashlytics: Real-time crash reporting
  • Messaging: Push notifications (FCM)
  • Remote Config: Change app behavior without deploying

Step 1: Create a Firebase Project

Go to Firebase Console

  1. Navigate to console.firebase.google.com
  2. Sign in with your Google account
  3. Click Add project (or Create a project)

Tip: Bookmark console.firebase.google.com/project/YOUR_PROJECT_ID/settings/general for quick access to your project settings.

Configure Your Project

  1. Enter your Project name (e.g., "My App")
  2. Firebase auto-generates a unique Project ID, you can edit it now (cannot change later)
  3. Click Continue
  4. Toggle Enable Google Analytics for this project (recommended)
  5. Select or create a Google Analytics account
  6. Click Create project
  7. Wait for provisioning to complete, then click Continue

Firebase Create Project


Step 2: Register iOS App

Add iOS App in Firebase

  1. In your Firebase project dashboard, click the iOS+ button (or Add app → iOS)
  2. Enter your Apple bundle ID, this must match the bundleIdentifier in your app.json
  3. (Optional) Enter App nickname for display in Firebase Console
  4. Skip the App Store ID for now (you can add it later)
  5. Click Register app

Firebase Register iOS App

Download Config File

  1. Click Download GoogleService-Info.plist
  2. Save this file to your project root (same folder as app.json)
  3. Click Next through the remaining Firebase setup steps, skip the CocoaPods and code steps, as the boilerplate already handles this via Expo config plugins

Update app.json for iOS

Make sure your app.json has the googleServicesFile pointing to the plist file you just downloaded. The boilerplate already has this configured, just verify the path matches where you placed the file (typically ./GoogleService-Info.plist in the project root).


Step 3: Register Android App

Add Android App in Firebase

  1. In Firebase Console, click Add appAndroid
  2. Enter your Android package name, this must match the package in your app.json
  3. (Optional) Enter App nickname
  4. Skip the Debug signing certificate SHA-1 for now (only needed for Google Sign-In)
  5. Click Register app

Firebase Register Android App

Download Config File

  1. Click Download google-services.json
  2. Save this file to your project root (same folder as app.json)
  3. Click Next through the remaining Firebase setup steps, skip the Gradle steps, as the boilerplate handles this via Expo config plugins

Step 4: Enable Firebase Services

Enable Crashlytics

  1. In Firebase Console, go to Release & MonitorCrashlytics
  2. Click Enable Crashlytics
  3. Select your app from the dropdown

Enable Cloud Messaging (Push Notifications)

For iOS push notifications, you need to upload your APNs key:

Create APNs Key

  1. Go to Apple Developer Portal
  2. Click Keys+ (Create a Key)
  3. Enter a Key Name (e.g., "FCM APNs Key")
  4. Check Apple Push Notifications service (APNs)
  5. Click ContinueRegister
  6. Download the .p8 file (you can only download it once!)
  7. Note your Key ID (shown on the key details page)

Upload to Firebase

  1. In Firebase Console → Project Settings (gear icon)
  2. Go to Cloud Messaging tab
  3. Scroll to Apple app configuration
  4. Click Upload under APNs Authentication Key
  5. Upload your .p8 file
  6. Enter your Key ID and Team ID (find Team ID in Apple Developer Portal → Membership)
  7. Click Upload

Testing

Test Analytics

For real-time event viewing, open Firebase Console → AnalyticsDebugView. When running locally on iOS, analytics events are auto-logged. For Android, you can enable debug mode via ADB to see events in real time.

Test Crashlytics

The boilerplate includes a crash test utility. Trigger a test crash, close the app completely, and reopen it. Crash reports are sent on the next app launch. Check Firebase Console → Crashlytics (may take a few minutes to appear).

Test Push Notifications

  1. Get your device's FCM token from the app logs
  2. In Firebase Console → Cloud MessagingSend your first message
  3. Enter notification title and body
  4. Click Send test message and paste your FCM token
  5. Click Test

Where the Code Lives

FeatureLocation
Configsrc/config/firebase.ts
Analyticssrc/services/analytics/
Notificationssrc/features/notifications/

Common Issues

IssueSolution
Build fails on iOSEnsure useFrameworks: "static" is set in expo-build-properties
No Firebase App '[DEFAULT]'Run npx expo prebuild --clean and rebuild
Config file not foundVerify file paths in app.json match actual file locations
Analytics events not showingWait 24 hours or use DebugView for real-time testing
Push notifications not receivedVerify APNs key is uploaded in Firebase Console
Crashlytics not reportingClose and reopen app after crash; reports sent on next launch
"Expo Go" errorFirebase requires a development build, not Expo Go

Additional Resources