[READ] Step 1: Are you in the right place?
Yes.
[REQUIRED] Step 2: Describe your environment
- Android Studio version: Android Studio Panda 4 | 2025.3.4 RC 1
- Firebase Component: firebase-messaging
- Component version: Firebase BOM 34.12.0 (Bug also depends on
androidx.datastore:1.3.0-alpha07)
[REQUIRED] Step 3: Describe the problem
I am using Firebase Cloud Messaging in my project, managed via the Firebase BOM. I also use androidx.datastore to store user preferences.
There seems to be a severe conflict or bug when combining recent versions of the Firebase BOM with the latest alpha version of Jetpack Datastore.
The Issue:
FirebaseMessagingService().onNewToken() is never called, not even on a fresh installation of the app.
- When calling
FirebaseMessaging.getInstance().getToken(), the task runs infinitely and never completes (neither succeeds nor fails).
Version specific behavior:
- The bug occurs when using Firebase BOM 34.12.0 in combination with androidx.datastore 1.3.0-alpha07.
- If I downgrade
androidx.datastore to 1.3.0-alpha06, the issue disappears and FCM works correctly.
- Alternatively, if I keep Datastore at
1.3.0-alpha07 but downgrade the Firebase BOM to 33.16.0, the issue also disappears.
This indicates a dependency clash between the newest Datastore alpha and the newest Firebase BOM, causing the FCM token generation/retrieval task to deadlock or silently fail.
The behavior can be reproduced in a fresh project.
Steps to reproduce:
- Create a project using Firebase BOM
34.12.0 and firebase-messaging.
- Add
androidx.datastore:datastore-preferences:1.3.0-alpha07.
- Set up a basic
FirebaseMessagingService.
- Install the app fresh. Notice that
onNewToken() is missing.
- Attempt to fetch the token manually via
FirebaseMessaging.getInstance().token. Notice that the listener is never triggered.
Relevant Code:
build.gradle.kts (Dependencies):
dependencies {
// Firebase
implementation(platform("com.google.firebase:firebase-bom:34.12.0"))
implementation("com.google.firebase:firebase-messaging")
// Datastore (Causes the FCM infinite hang with the BOM above)
implementation("androidx.datastore:datastore-preferences:1.3.0-alpha07")
// Note: Reverting to 1.3.0-alpha06 fixes the Firebase issue.
}
MyFirebaseMessagingService.kt:
import android.util.Log
import com.google.firebase.messaging.FirebaseMessagingService
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
// BUG: This is NEVER called on fresh install when using the dependency combination above.
Log.d("FCM_TEST", "Refreshed token: $token")
}
}
MainActivity.kt (Manual Token Fetching):
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.google.firebase.messaging.FirebaseMessaging
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("FCM_TEST", "Fetching FCM token...")
FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
// BUG: This callback is NEVER reached. It hangs infinitely.
if (!task.isSuccessful) {
Log.w("FCM_TEST", "Fetching FCM registration token failed", task.exception)
return@addOnCompleteListener
}
val token = task.result
Log.d("FCM_TEST", "FCM Token: $token")
}
}
}
[READ] Step 1: Are you in the right place?
Yes.
[REQUIRED] Step 2: Describe your environment
androidx.datastore:1.3.0-alpha07)[REQUIRED] Step 3: Describe the problem
I am using Firebase Cloud Messaging in my project, managed via the Firebase BOM. I also use
androidx.datastoreto store user preferences.There seems to be a severe conflict or bug when combining recent versions of the Firebase BOM with the latest alpha version of Jetpack Datastore.
The Issue:
FirebaseMessagingService().onNewToken()is never called, not even on a fresh installation of the app.FirebaseMessaging.getInstance().getToken(), the task runs infinitely and never completes (neither succeeds nor fails).Version specific behavior:
androidx.datastoreto 1.3.0-alpha06, the issue disappears and FCM works correctly.1.3.0-alpha07but downgrade the Firebase BOM to 33.16.0, the issue also disappears.This indicates a dependency clash between the newest Datastore alpha and the newest Firebase BOM, causing the FCM token generation/retrieval task to deadlock or silently fail.
The behavior can be reproduced in a fresh project.
Steps to reproduce:
34.12.0andfirebase-messaging.androidx.datastore:datastore-preferences:1.3.0-alpha07.FirebaseMessagingService.onNewToken()is missing.FirebaseMessaging.getInstance().token. Notice that the listener is never triggered.Relevant Code:
build.gradle.kts(Dependencies):dependencies { // Firebase implementation(platform("com.google.firebase:firebase-bom:34.12.0")) implementation("com.google.firebase:firebase-messaging") // Datastore (Causes the FCM infinite hang with the BOM above) implementation("androidx.datastore:datastore-preferences:1.3.0-alpha07") // Note: Reverting to 1.3.0-alpha06 fixes the Firebase issue. }MyFirebaseMessagingService.kt:
MainActivity.kt (Manual Token Fetching):