last update
Jun 2, 2026
license
MITv1.0.0
format
SKILL.md
- Install
// Downloads SKILL.md into ~/.claude/skills/android-firebase-bom/
$ curl -fsSL --create-dirs -o ~/.claude/skills/android-firebase-bom/SKILL.md https://claudeskil.com/skills/android-firebase-bom/SKILL.md - Invoke
// Inside Claude Code, type the skill name as a slash command
> /android-firebase-bom help me ship this - Or just ask
// Claude loads the skill by itself when a request matches its description
> help me ship this
- name:
- Android Firebase BoM
- slug:
- android-firebase-bom
- version:
- v1.0.0
- license:
- MIT
- author:
- @chiragthummar16
- categories:
- tags:
- #firebase#auth#firestore#crashlytics#fcm
- description:
Wire Firebase right — Auth, Firestore, Realtime DB, Crashlytics, Analytics, Cloud Messaging — via the BoM.
// What you can do with it
- Gradle: applies com.google.gms.google-services and com.google.firebase.crashlytics plugins, then imports platform("com.google.firebase:firebase-bom:") so you declare artifacts like firebase-firestore,
- Auth: FirebaseAuth, GoogleAuthProvider.getCredential() with Credential Manager, OAuthProvider for Apple, and PhoneAuthProvider.verifyPhoneNumber() with PhoneAuthOptions.
- Firestore: enables offline persistence via FirebaseFirestoreSettings / PersistentCacheSettings, plus snapshot listeners and Source.CACHE patterns.
- Crashlytics: setCustomKey, setUserId, recordException, ANR collection, and firebaseCrashlytics { mappingFileUploadEnabled }.
- FCM: a FirebaseMessagingService subclass overriding onMessageReceived and onNewToken, plus the POST_NOTIFICATIONS runtime permission for Android 13+.
- Remote Config: setConfigSettingsAsync, setDefaultsAsync, and fetchAndActivate().
README.md
Android Firebase BoM
A setup guide and code-generation skill for wiring Firebase into an Android app the right way, anchored on the Firebase Bill of Materials (BoM) so every library version stays compatible. It targets Android engineers who are adding Auth, Firestore, Crashlytics, Analytics, Cloud Messaging, or Remote Config to a Gradle project and want production-grade defaults instead of copy-pasted snippets that drift out of sync.
When to use it
- Starting Firebase from scratch and unsure which dependencies and plugins belong where.
- Chasing
NoClassDefFoundErroror version-skew crashes after manually pinning Firebase library versions. - Adding sign-in (Google One Tap, Apple via OAuth provider, or phone/SMS) and need the verification flow handled correctly.
- Turning on Crashlytics with ANR reporting, custom keys, and NDK symbol upload.
- Standing up FCM push with a proper
FirebaseMessagingServiceand token refresh handling.
What it does
Generates and explains the wiring across the files that matter:
- Gradle: applies
com.google.gms.google-servicesandcom.google.firebase.crashlyticsplugins, then importsplatform("com.google.firebase:firebase-bom:<version>")so you declare artifacts likefirebase-firestore,firebase-auth,firebase-analytics,firebase-messaging, andfirebase-configwithout version numbers. - Auth:
FirebaseAuth,GoogleAuthProvider.getCredential()with Credential Manager,OAuthProviderfor Apple, andPhoneAuthProvider.verifyPhoneNumber()withPhoneAuthOptions. - Firestore: enables offline persistence via
FirebaseFirestoreSettings/PersistentCacheSettings, plus snapshot listeners andSource.CACHEpatterns. - Crashlytics:
setCustomKey,setUserId,recordException, ANR collection, andfirebaseCrashlytics { mappingFileUploadEnabled }. - FCM: a
FirebaseMessagingServicesubclass overridingonMessageReceivedandonNewToken, plus thePOST_NOTIFICATIONSruntime permission for Android 13+. - Remote Config:
setConfigSettingsAsync,setDefaultsAsync, andfetchAndActivate().
Usage example
curl -fsSL --create-dirs -o ~/.claude/skills/android-firebase-bom/SKILL.md https://claudeskil.com/skills/android-firebase-bom/SKILL.md
// app/build.gradle.kts
plugins {
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
}
dependencies {
implementation(platform("com.google.firebase:firebase-bom:33.7.0"))
implementation("com.google.firebase:firebase-analytics")
implementation("com.google.firebase:firebase-auth")
implementation("com.google.firebase:firebase-firestore")
implementation("com.google.firebase:firebase-messaging")
}
Tips & gotchas
- Never mix BoM-managed and explicitly versioned Firebase artifacts — pinning one forces you to track the whole matrix manually, which defeats the BoM.
google-services.jsonmust sit in the module directory (app/), and itspackage_namemust match yourapplicationId, including build-type suffixes.- Crashlytics reports only after a process restart; force a
throw RuntimeException()in debug to confirm the pipeline before assuming silence means success. - On Android 13+, an FCM token alone won't show notifications — you must request
POST_NOTIFICATIONSat runtime.
FAQ
Do I still need firebase-analytics if I don't use Analytics?
It's recommended; several products (including Crashlytics and Remote Config) lean on it for breadcrumb and audience data, and it's lightweight.
Why did versions stop appearing in my dependency block? That's intentional — the BoM resolves them. Check the BoM version's release notes to see what each artifact maps to.
Does the BoM cover Google Play services libraries like Maps?
No. The Firebase BoM governs only com.google.firebase:* artifacts; Play services dependencies are versioned separately.
$ cat reviews/