Код: Выделить всё
fun updateUserPhotoPath(photoPath: String) {
val userId = loggedInUser.value?.id
Log.d("UserImagePicker", "User ID before updating photo path: $userId")
Log.d("UserImagePicker", "New photo path: $photoPath")
if (userId != null) {
Log.d("LoginViewModel", "Updating user photo path for userId: $userId with photoPath: $photoPath")
viewModelScope.launch {
userRepository.updateUserPhotoPath(userId, photoPath)
}
} else {
Log.d("LoginViewModel", "User ID is null, cannot update photo path.")
}
}
Код: Выделить всё
private fun fetchLoggedInUser(username: String) {
viewModelScope.launch {
val user = userRepository.getUserByUsername(username)
Log.d("LoginViewModel", "Fetched user: $user")
_loggedInUser.value = user
if (user != null) {
Log.d("LoginViewModel", "Logged in user set to: ${_loggedInUser.value}")
} else {
Log.d("LoginViewModel", "No user found for username: $username")
}
}
}
Код: Выделить всё
private val _loggedInUser = MutableLiveData(null)
val loggedInUser: LiveData = _loggedInUser
проблема в том, что этому значению не присвоен идентификатор val userId = loggedInUser.value?.id
code>, но вышеупомянутым переменным назначен Пользователь, а также я думаю, что у меня проблема с передачей данных в представление с помощью LiveData, но я не знаю, как ее решить
Наблюдатель в представлении:
Код: Выделить всё
val loggedInUser by loginViewModel.loggedInUser.observeAsState()Код: Выделить всё
2024-10-02 00:34:20.840 4469-4469 LoginViewModel com.example.pracainynierska D Fetched user: User(id=1, username=Andrzej, password=03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4, email=andrzej@wp.pl, userPhotoPath=app/src/main/res/raw/user_photo_2.json)
2024-10-02 00:34:20.840 4469-4469 LoginViewModel com.example.pracainynierska D Logged in user set to: User(id=1, username=Andrzej, password=03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4, email=andrzej@wp.pl, userPhotoPath=app/src/main/res/raw/user_photo_2.json)
Подробнее здесь: https://stackoverflow.com/questions/790 ... a-variable
Мобильная версия