Add Firebase to your Android project

Prerequisites

  • Install or update Android Studio to its latest version.

  • Make sure that your project meets these requirements:

    • Targets API level 16 (Jelly Bean) or higher
    • Uses Android 4.1 or higher
    • Uses Jetpack (AndroidX), which includes meeting these version requirements:
      • com.android.tools.build:gradle v3.2.1 or later
      • compileSdkVersion 28 or later
  • Set up a physical device or use an emulator to run your app.
    Note that Firebase SDKs with a dependency on Google Play services require the device or emulator to have Google Play services installed.

  • Sign into Firebase using your Google account.

If you don't already have an Android project and just want to try out a Firebase product, you can download one of our quickstart samples.


You can connect your Android app to Firebase using one of the following options:

  • Option 1: (recommended) Use the Firebase console setup workflow.
  • Option 2: Use the Android Studio Firebase Assistant (may require additional configuration).



Option 1: Add Firebase using the Firebase console

Adding Firebase to your app involves tasks both in the Firebase console and in your open Android project (for example, you download Firebase config files from the console, then move them into your Android project).

Step 1: Create a Firebase project

Before you can add Firebase to your Android app, you need to create a Firebase project to connect to your Android app. Visit Understand Firebase Projects to learn more about Firebase projects.

Step 2: Register your app with Firebase

To use Firebase in your Android app, you need to register your app with your Firebase project. Registering your app is often called "adding" your app to your project.

  1. Go to the Firebase console.

  2. In the center of the project overview page, click the Android icon () or Add app to launch the setup workflow.

  3. Enter your app's package name in the Android package name field.

  4. (Optional) Enter other app information: App nickname and Debug signing certificate SHA-1.

  5. Click Register app.

Step 3: Add a Firebase configuration file

  1. Add the Firebase Android configuration file to your app:

    1. Click Download google-services.json to obtain your Firebase Android config file (google-services.json).

    2. Move your config file into the module (app-level) directory of your app.

  2. To enable Firebase products in your app, add the google-services plugin to your Gradle files.

    1. In your root-level (project-level) Gradle file (build.gradle), add rules to include the Google Services Gradle plugin. Check that you have Google's Maven repository, as well.

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.3.10'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. In your module (app-level) Gradle file (usually app/build.gradle), apply the Google Services Gradle plugin:

      apply plugin: 'com.android.application'
      // Add the following line:
      apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
      android {
        // ...
      }
      

Step 4: Add Firebase SDKs to your app

  1. Using the Firebase Android BoM, declare the dependencies for the Firebase products that you want to use in your app. Declare them in your module (app-level) Gradle file (usually app/build.gradle).

    Analytics enabled

    Java

    dependencies {
      // ...
    
      // Import the Firebase BoM
      implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
      // When using the BoM, you don't specify versions in Firebase library dependencies
    
      // Declare the dependency for the Firebase SDK for Google Analytics
      implementation 'com.google.firebase:firebase-analytics'
    
      // Declare the dependencies for any other desired Firebase products
      // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
      implementation 'com.google.firebase:firebase-auth'
      implementation 'com.google.firebase:firebase-firestore'
    }
    

    Kotlin+KTX

    dependencies {
      // ...
    
      // Import the Firebase BoM
      implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
      // When using the BoM, you don't specify versions in Firebase library dependencies
    
      // Declare the dependency for the Firebase SDK for Google Analytics
      implementation 'com.google.firebase:firebase-analytics-ktx'
    
      // Declare the dependencies for any other desired Firebase products
      // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
      implementation 'com.google.firebase:firebase-auth-ktx'
      implementation 'com.google.firebase:firebase-firestore-ktx'
    }
    

    By using the Firebase Android BoM, your app will always use compatible versions of the Firebase Android libraries.

    Analytics not enabled

    Java

    dependencies {
      // ...
    
      // Import the Firebase BoM
      implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
      // When using the BoM, you don't specify versions in Firebase library dependencies
    
      // Declare the dependencies for the desired Firebase products
      // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
      implementation 'com.google.firebase:firebase-auth'
      implementation 'com.google.firebase:firebase-firestore'
    }
    

    Kotlin+KTX

    dependencies {
      // ...
    
      // Import the Firebase BoM
      implementation platform('com.google.firebase:firebase-bom:28.4.1')
    
      // When using the BoM, you don't specify versions in Firebase library dependencies
    
      // Declare the dependencies for the desired Firebase products
      // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
      implementation 'com.google.firebase:firebase-auth-ktx'
      implementation 'com.google.firebase:firebase-firestore-ktx'
    }
    

    By using the Firebase Android BoM, your app will always use compatible versions of the Firebase Android libraries.

  2. Sync your app to ensure that all dependencies have the necessary versions.

That's it! You can skip ahead to check out the recommended next steps.

If you're having trouble getting set up, though, visit the Android troubleshooting & FAQ.



Option 2: Add Firebase using the Firebase Assistant

The Firebase Assistant registers your app with a Firebase project and adds the necessary Firebase files, plugins, and dependencies to your Android project — all from within Android Studio!

  1. Open your Android project in Android Studio, then make sure that you're using the latest versions of Android Studio and the Firebase Assistant:

    • Windows / Linux: Help > Check for updates
    • macOS: Android Studio > Check for updates
  2. Open the Firebase Assistant: Tools > Firebase.

  3. In the Assistant pane, choose a Firebase product to add to your app. Expand its section, then click the tutorial link (for example, Analytics > Log an Analytics event).

    1. Click Connect to Firebase to connect your Android project with Firebase.

    2. Click the button to add a desired Firebase product (for example, Add Analytics to your app).

  4. Sync your app to ensure that all dependencies have the necessary versions.

  5. In the Assistant pane, follow the remaining setup instructions for your selected Firebase product.

  6. Add as many other Firebase products as you'd like via the Firebase Assistant!

That's it! Make sure to check out the recommended next steps.

If you're having trouble getting set up, though, visit the Android troubleshooting & FAQ.



Available libraries

This section lists the Firebase products supported for Android and their Gradle dependencies. Learn more about these Firebase Android libraries:

Note that when using the Firebase Android BoM, you don't specify individual library versions when you declare Firebase library dependencies in build.gradle.

Java

Service or Product Gradle dependency Latest
version
Add Analytics?
Firebase Android BoM
(Bill of Materials)
com.google.firebase:firebase-bom

The latest Firebase BoM version contains the latest versions of each Firebase Android library. To learn which library versions are mapped to a specific BoM version, review the release notes for that BoM version.

28.4.1
AdMob com.google.android.gms:play-services-ads 20.4.0
Analytics com.google.firebase:firebase-analytics 19.0.1
App Check custom provider com.google.firebase:firebase-appcheck 16.0.0-beta02
App Check debug provider com.google.firebase:firebase-appcheck-debug 16.0.0-beta02
App Check SafetyNet provider com.google.firebase:firebase-appcheck-safetynet 16.0.0-beta02
App Distribution plugin com.google.firebase:firebase-appdistribution-gradle 2.2.0
App Indexing com.google.firebase:firebase-appindexing 20.0.0
Authentication com.google.firebase:firebase-auth 21.0.1
Cloud Firestore com.google.firebase:firebase-firestore 23.0.3
Cloud Functions for Firebase Client SDK com.google.firebase:firebase-functions 20.0.1
Cloud Messaging com.google.firebase:firebase-messaging 22.0.0
Cloud Storage com.google.firebase:firebase-storage 20.0.0
Crashlytics com.google.firebase:firebase-crashlytics 18.2.1
Crashlytics NDK com.google.firebase:firebase-crashlytics-ndk 18.2.1
Crashlytics plugin com.google.firebase:firebase-crashlytics-gradle 2.7.1
Dynamic feature module support com.google.firebase:firebase-dynamic-module-support 16.0.0-beta01
Dynamic Links com.google.firebase:firebase-dynamic-links 20.1.1
In-App Messaging com.google.firebase:firebase-inappmessaging 20.1.0
(required)
In-App Messaging Display com.google.firebase:firebase-inappmessaging-display 20.1.0
(required)
Firebase installations com.google.firebase:firebase-installations 17.0.0
Firebase ML Model Downloader API com.google.firebase:firebase-ml-modeldownloader 24.0.0
Performance Monitoring com.google.firebase:firebase-perf 20.0.2
Performance Monitoring plugin com.google.firebase:perf-plugin 1.4.0
Realtime Database com.google.firebase:firebase-database 20.0.2
Remote Config com.google.firebase:firebase-config 21.0.1
Google Play services plugin com.google.gms:google-services 4.3.10
Deprecated libraries
Firebase ML Custom Model APIs com.google.firebase:firebase-ml-model-interpreter 22.0.4
Firebase ML Vision APIs com.google.firebase:firebase-ml-vision 24.1.0
Firebase ML: Image Labeling Model com.google.firebase:firebase-ml-vision-image-label-model 20.0.2
Firebase ML: Object Detection and Tracking Model com.google.firebase:firebase-ml-vision-object-detection-model 19.0.6
Firebase ML: Face Detection Model com.google.firebase:firebase-ml-vision-face-model 20.0.2
Firebase ML: Barcode Scanning Model com.google.firebase:firebase-ml-vision-barcode-model 16.1.2
Firebase ML: AutoML Vision Edge API com.google.firebase:firebase-ml-vision-automl 18.0.6
Firebase ML: Natural Language APIs com.google.firebase:firebase-ml-natural-language 22.0.1
Firebase ML: Language Identification Model com.google.firebase:firebase-ml-natural-language-language-id-model 20.0.8
Firebase ML: Translate Model com.google.firebase:firebase-ml-natural-language-translate-model 20.0.9
Firebase ML: Smart Reply Model com.google.firebase:firebase-ml-natural-language-smart-reply-model 20.0.8

Kotlin+KTX

Service or Product Gradle dependency Latest
version
Add Analytics?
Firebase Android BoM
(Bill of Materials)
com.google.firebase:firebase-bom

The latest Firebase BoM version contains the latest versions of each Firebase Android library. To learn which library versions are mapped to a specific BoM version, review the release notes for that BoM version.

28.4.1
AdMob com.google.android.gms:play-services-ads 20.4.0
Analytics com.google.firebase:firebase-analytics-ktx 19.0.1
App Check custom provider com.google.firebase:firebase-appcheck 16.0.0-beta02
App Check debug provider com.google.firebase:firebase-appcheck-debug 16.0.0-beta02
App Check SafetyNet provider com.google.firebase:firebase-appcheck-safetynet 16.0.0-beta02
App Distribution plugin com.google.firebase:firebase-appdistribution-gradle 2.2.0
App Indexing com.google.firebase:firebase-appindexing 20.0.0
Authentication com.google.firebase:firebase-auth-ktx 21.0.1
Cloud Firestore com.google.firebase:firebase-firestore-ktx 23.0.3
Cloud Functions for Firebase Client SDK com.google.firebase:firebase-functions-ktx 20.0.1
Cloud Messaging com.google.firebase:firebase-messaging-ktx 22.0.0
Cloud Storage com.google.firebase:firebase-storage-ktx 20.0.0
Crashlytics com.google.firebase:firebase-crashlytics-ktx 18.2.1
Crashlytics NDK com.google.firebase:firebase-crashlytics-ndk 18.2.1
Crashlytics plugin com.google.firebase:firebase-crashlytics-gradle 2.7.1
Dynamic feature module support com.google.firebase:firebase-dynamic-module-support 16.0.0-beta01
Dynamic Links com.google.firebase:firebase-dynamic-links-ktx 20.1.1
In-App Messaging com.google.firebase:firebase-inappmessaging-ktx 20.1.0
(required)
In-App Messaging Display com.google.firebase:firebase-inappmessaging-display-ktx 20.1.0
(required)
Firebase installations com.google.firebase:firebase-installations-ktx 17.0.0
Firebase ML Model Downloader API com.google.firebase:firebase-ml-modeldownloader-ktx 24.0.0
Performance Monitoring com.google.firebase:firebase-perf-ktx 20.0.2
Performance Monitoring plugin com.google.firebase:perf-plugin 1.4.0
Realtime Database com.google.firebase:firebase-database-ktx 20.0.2
Remote Config com.google.firebase:firebase-config-ktx 21.0.1
Google Play services plugin com.google.gms:google-services 4.3.10
Deprecated libraries
Firebase ML Custom Model APIs com.google.firebase:firebase-ml-model-interpreter 22.0.4
Firebase ML Vision APIs com.google.firebase:firebase-ml-vision 24.1.0
Firebase ML: Image Labeling Model com.google.firebase:firebase-ml-vision-image-label-model 20.0.2
Firebase ML: Object Detection and Tracking Model com.google.firebase:firebase-ml-vision-object-detection-model 19.0.6
Firebase ML: Face Detection Model com.google.firebase:firebase-ml-vision-face-model 20.0.2
Firebase ML: Barcode Scanning Model com.google.firebase:firebase-ml-vision-barcode-model 16.1.2
Firebase ML: AutoML Vision Edge API com.google.firebase:firebase-ml-vision-automl 18.0.6
Firebase ML: Natural Language APIs com.google.firebase:firebase-ml-natural-language 22.0.1
Firebase ML: Language Identification Model com.google.firebase:firebase-ml-natural-language-language-id-model 20.0.8
Firebase ML: Translate Model com.google.firebase:firebase-ml-natural-language-translate-model 20.0.9
Firebase ML: Smart Reply Model com.google.firebase:firebase-ml-natural-language-smart-reply-model 20.0.8



Next steps

Add Firebase services to your app:

Learn about Firebase: