fix: register FCM token on app startup and improve error logging #64

Merged
rafaga21 merged 1 commits from feat/dashboard-aggregated-chart into master 2026-06-13 13:47:06 -04:00
2 changed files with 19 additions and 4 deletions

View File

@@ -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")

View File

@@ -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"
}
}