From 94e3dfe23650afb1a7c6c4841cc1721d616c05b3 Mon Sep 17 00:00:00 2001 From: Agent Date: Sat, 13 Jun 2026 13:46:03 -0400 Subject: [PATCH] fix: register FCM token on app startup and improve error logging --- android/app/build.gradle.kts | 3 ++- .../com/devlab/app/ui/login/LoginViewModel.kt | 20 ++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 410c754..66cdfce 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -68,7 +68,8 @@ dependencies { implementation(platform("com.google.firebase:firebase-bom:34.14.1")) implementation("com.google.firebase:firebase-analytics") - implementation("com.google.firebase:firebase-messaging-ktx:24.1.0") + implementation("com.google.firebase:firebase-messaging-ktx") + implementation("com.google.firebase:firebase-common-ktx") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") diff --git a/android/app/src/main/java/com/devlab/app/ui/login/LoginViewModel.kt b/android/app/src/main/java/com/devlab/app/ui/login/LoginViewModel.kt index 31aa938..5bf5124 100644 --- a/android/app/src/main/java/com/devlab/app/ui/login/LoginViewModel.kt +++ b/android/app/src/main/java/com/devlab/app/ui/login/LoginViewModel.kt @@ -1,5 +1,6 @@ package com.devlab.app.ui.login +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.devlab.app.ServerManagerApp @@ -43,6 +44,7 @@ class LoginViewModel : ViewModel() { isConnected = true, username = savedUsername ) + registerFcmToken() } } } @@ -109,7 +111,10 @@ class LoginViewModel : ViewModel() { fcmToken = withContext(Dispatchers.IO) { try { Tasks.await(FirebaseMessaging.getInstance().token) - } catch (_: Exception) { "" } + } catch (e: Exception) { + Log.e(TAG, "Failed to fetch FCM token from Firebase: ${e.message}") + "" + } } if (fcmToken.isNotBlank()) { prefs.saveFcmToken(fcmToken) @@ -118,7 +123,16 @@ class LoginViewModel : ViewModel() { if (fcmToken.isNotBlank()) { val service = RetrofitClient.getApiService() service.registerFcmToken(FcmRegisterRequest(fcmToken)) + Log.d(TAG, "FCM token registered with backend") + } else { + Log.w(TAG, "FCM token is blank, skipping registration") } - } catch (_: Exception) { } + } catch (e: Exception) { + Log.e(TAG, "FCM token registration failed: ${e.message}") + } } -} + + companion object { + private const val TAG = "LoginViewModel" + } +} \ No newline at end of file