fix: register FCM token on app startup and improve error logging #64
@@ -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")
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user