Stay organized with collectionsSave and categorize content based on your preferences.
As you're developing your Android project using Firebase, you might discover
concepts that are unfamiliar or specific to Firebase. This page aims to answer
those questions or point you to resources to learn more.
If you have questions about a topic not covered on this page, feel free to visit
one of ouronline communities. We'll also
update this page with new topics periodically, so check back to see if we've
added the topic you want to learn about!
Firebase Assistant plugin for Android Studio
The Firebase Assistant is an Android Studio plugin that registers your Android
app with a Firebase project and adds the necessary Firebase config files,
plugins, and dependencies to your Android project — all from within Android
Studio!
Follow the instructions in theAndroid getting started pageto use the
Firebase Assistant. Make sure that you're using the most up-to-date versions of
both Android Studio and the Firebase Assistant
(go toFile > Check for updates).
When you select specific Firebase products to add to your app, the Firebase
Assistant automatically declares the required dependencies in yourapp/build.gradlefile. Note that if you want to use theFirebase Android BoM(recommended), update the dependencies in yourmodule (app-level) Gradle file(usuallyapp/build.gradle) to import theBoMplatform. You'll also need to remove the versions from each Firebase
library dependency line.
Additionally, to use some Firebase products, you must enable APIs or provision
resources outside of Android Studio. The instructions for each product in the
Firebase Assistant describe any additional actions that you need to do. For
example, to useCloud Firestore, you need to set up your database and rules in theFirebaseconsole.
Google services — plugin and config file
As part of adding Firebase to your Android project, you need to add thegoogle-servicesplugin and agoogle-services.jsonconfiguration file to
your project.
If you add Firebase to your Android project via
theFirebaseconsole,
theManagement REST API,
or theFirebaseCLI,
you must manually add the plugin and config file to your project. However, if
you use theFirebase Assistant, these tasks are
automatically done for you during setup.
Visit theAndroid documentationto learn about how the Google services plugin and config file work together.
Firebase Android BoM(Bill of Materials)
TheFirebase Android BoM(Bill of Materials) lets you manage all your
Firebase library versions by specifying only one version — theBoM's
version.
When you use theFirebase BoMin your app, theBoMautomatically pulls
in the individual library versions mapped toBoM's version.All the
individual library versions will be compatible.When you update theBoM's
version in your app, all the Firebase libraries that you use in your app will
update to the versions mapped to thatBoMversion.
To learn which Firebase library versions are mapped to a specificBoMversion, check out therelease notesfor thatBoMversion. If you need to compare the library versions mapped to oneBoMversion compared to anotherBoMversion, use thecomparison widgetbelow.
Here's how to use theFirebase Android BoMto declare dependencies in yourmodule (app-level) Gradle file(usuallyapp/build.gradle). When using theBoM, you don't specify individual library versions in the dependency lines.
dependencies{// Import theBoMfor the Firebase platformimplementationplatform('com.google.firebase:firebase-bom:34.2.0')// Declare the dependencies for the desired Firebase products without specifying versions// For example, declare the dependencies forFirebase AuthenticationandCloud Firestoreimplementation'com.google.firebase:firebase-auth'implementation'com.google.firebase:firebase-firestore'}
Here are some frequently asked questions about using theFirebase Android BoM:
How do I use adifferentlibrary version than what's designated in
theBoM?
Here's how to override a library version designated in theBoM:
Maintain the line to import theBoMplatform.
In the library's dependency line, specify the desired library version. For
example, here's how to declare dependencies if you want to use v18.0.0
ofApp Indexingno matter what version is designated in theBoM,butyou want to use theBoM's versions forAuthenticationandCloud Firestore:
dependencies{// Import theBoMfor the Firebase platformimplementationplatform('com.google.firebase:firebase-bom:34.2.0')// Declare the dependency for theApp Indexinglibrary and specify a version// This specified library version overrides the version designated in theBoM.implementation'com.google.firebase:firebase-appindexing:18.0.0'// Declare the dependencies for the other Firebase libraries without specifying versions// These libraries will use the versions designated in theBoM.implementation'com.google.firebase:firebase-auth'implementation'com.google.firebase:firebase-firestore'}
Does theBoMautomatically add all the Firebase libraries to my app?
No. To actually add and use Firebase libraries in your app, you must declare
each library as a separate dependency line in yourmodule (app-level) Gradle
file(usuallyapp/build.gradle).
Using theBoMensures that theversionsof any Firebase libraries in your
app are compatible, but theBoMdoesn't actuallyaddthose Firebase
libraries to your app.
Are the Firebase Kotlin extensions (KTX) libraries supported by theBoM?
In July 2025 (BoMv34.0.0), the Firebase Kotlin extensions (KTX) libraries
were removed from theBoM. If you use aBoMversion earlier than
v34.0.0, then you can continue using KTX libraries in your app.
However, we recommend that you migrate your app to use KTX APIs from the main
modules; otherwise, you won't be able to update to newerBoMversions and
thus newer versions of the Firebase product libraries. For details, see theFAQ about this initiative.
Can I use theBoMto add Android libraries that arenotfrom
Firebase?
No. TheFirebase Android BoMonly manages library versions for Firebase
libraries.
Why is theBoMthe recommended way to manage Firebase library versions?
Even though each Firebase library is versioned independently, they are built
together to ensure that the latest release of each library is compatible with
the others.
By using theBoMto manage your app's Firebase library versions, you don't
need to track which version of a Firebase library is compatible with another
Firebase library.
Even if you only use one Firebase library in your app right now, we still
recommend using theBoMbecause you never know when you might want to use
another Firebase library!
My app uses a Gradle versionearlier than 5.0— can I still use theBoM?
Yes, you can still use theBoM! For Gradle 5.0 and later,BoMsupport is
automatically enabled. However,for earlier versions of Gradle,you just need toenable theBoMfeatureand import theBoMa bit differently.
To yoursettings.gradlefile, addenableFeaturePreview('IMPROVED_POM_SUPPORT').
To yourmodule (app-level) Gradle file(usuallyapp/build.gradle), import theBoMlike a normal library (without theplatformmodifier), like so:
dependencies{// Import theFirebase BoMimplementation'com.google.firebase:firebase-bom:34.2.0'// Declare the dependencies for the desired Firebase products, without specifying versions// For example, declare the dependencies forFirebase AuthenticationandCloud Firestoreimplementation'com.google.firebase:firebase-auth'implementation'com.google.firebase:firebase-firestore'}
How do I report an issue or offer feedback on theBoM?
As of May 2021 (Firebase BoMv28.0.0), Firebase Android SDKs can be
used in dynamic feature modules which are installed separately from your base
application module.
To enable support for dynamic feature modules, add the following dependency
to yourbasemodule'sbuild.gradlefile:
Now that you've added dynamic module support, you can add Firebase SDK
dependencies (with or without theFirebase BoM) to feature modules of your
app and use them as you normally would.
For example, if your application usesRealtime Databaseto power a specific realtime
feature you could add thefirebase-databasedependency to thebuild.gradleof the feature module rather than the base module. This will reduce download
size for most users.
Be aware of the following caveats when using Firebase SDKs in feature modules:
Products such asDynamic LinksorFirebase In-App Messagingwhich rely on theAnalyticsfirst_openevent may miss this event when used in a dynamic feature module.
When usingCloud FirestoreandAuthenticationtogether, you should always include them
both in the same module. If this is not possible, then make sure thatAuthenticationis loadedbeforeCloud Firestore; otherwise, someCloud Firestoreoperations may
have an incorrect authentication state.
When usingfirebase-crashlytics-ndkas a dependency of a dynamic feature
module, you need to set theunstrippedNativeLibsDirproperty in your app'sbuild.gradlefile, as described in theCrashlyticsNDK documentation.
Google services Gradle plugin vs Google Play services vs Google Play Store
Several pieces of the Google, Firebase, and Android ecosystem have similar
naming conventions. Here's a brief explanation for each:
Google services Gradle plugin
A Gradle plugin (com.google.gms.google-services) that runs at build time to
ensure that your app has the right configuration to access Firebase and Google
APIs
Despite its name, this plugin has no relation to Google Play services (see
next entry) and has no impact on your app's capabilities at runtime.
This plugin also processes thegoogle-services.jsonfile that you add to
your app as part of setting up Firebase. Learn more about theGoogle services Gradle plugin.
Google Play services
An invisible background service that runs on an Android device and provides
several common Google APIs (like Google Maps and Google Sign In) to apps on
the device
By centralizing these common APIs into a single service, it reduces the size
of other apps and allows a device to receive automatic security updates and
feature enhancements without an OS update. Learn more aboutGoogle Play services.
Google Play Store
A store to download apps, movies, books, and more on an Android device
As a developer, you manage the distribution, releases, etc. for your app via
the Google Play Console. If a device has the Google Play Store, it's also
running Google Play services (see previous entry). Learn more about theGoogle Play Store for developers.
Firebase supports open source development, and we encourage community
contributions and feedback.
Firebase Android SDKs
Most Firebase Android SDKs are developed as open source libraries in our publicFirebase GitHub repository.
We're actively working to move the remaining privately developed Firebase
libraries to our public GitHub soon!
Quickstart samples
Firebase maintains a collection of quickstart samples for most Firebase APIs on
Android. Find these quickstarts in our publicFirebase GitHub quickstart repository.
You can open each quickstart as an Android Studio project, then run them on a
mobile device or a virtual device (AVD). Or you can use these quickstarts as
example code for using Firebase SDKs.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,[]]