[Messaging] getToken() hangs infinitely and onNewToken() is never called when using Firebase BOM 34.12.0 with androidx.datastore 1.3.0-alpha07
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- mobile-dev
Línea de trabajo
Reproduce el problema con las versiones y dependencias de build.gradle.kts y, a continuación, sigue el comportamiento de FirebaseMessaging.getInstance().token y de onNewToken() de MyFirebaseMessagingService.kt con Firebase BOM 34.12.0 y androidx.datastore 1.3.0-alpha07. Compáralo con Datastore 1.3.0-alpha06 o Firebase BOM 33.16.0; se considera completado cuando la recuperación del token termina y se llama a onNewToken() con la combinación afectada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
[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.datastoreto 1.3.0-alpha06, the issue disappears and FCM works correctly. - Alternatively, if I keep Datastore at
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:
- Create a project using Firebase BOM
34.12.0andfirebase-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")
}
}
}
- Lenguaje dominante
- Java
- Estrellas
- 2.6k
- Forks
- 733
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 72
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de firebase/firebase-android-sdk
-
api: remoteconfig
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
firebase/firebase-android-sdk#8827 ·
Los mantenedores suelen responder en 1 día
-
Crashlytics plugin writes build ID lists in directory listing order, so APKs can differ between machinesPosiblemente ocupada @mrober la tomó hace 8 días. Abiertoapi: crashlytics
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
firebase/firebase-android-sdk#8789 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
api: auth
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
firebase/firebase-android-sdk#8505 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
firebase/firebase-android-sdk#8835 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
firebase/firebase-android-sdk#8832 ·
Los mantenedores suelen responder en 1 día
Todos los issues de firebase/firebase-android-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NationalSecurityAgency/ghidra#10220 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Los mantenedores suelen responder en 1 día
-
RIS export splits an organization name containing “and” into multiple authorsPosiblemente ocupada @Gautam-aman la tomó hoy. Abiertostatus: needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
JabRef/jabref#17821 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
FailureContext.java rounds down thresholds in lastedAtLeast()Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día