Проблема обновления целочисленного поля в Supabase из приложения KotlinAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема обновления целочисленного поля в Supabase из приложения Kotlin

Сообщение Anonymous »

Я пытаюсь обновить поле Int4 на Supabase, но ничего не происходит, когда код запускается. Обновления в Block для Oncalldates, Gymcalldates и Leavedates работают отлично, даже в блоке Else, пока я не добавлю < /p>

"staff_role" to maff.staffrole, < /p>
< /blockquote>
или < /p>

< /blockquote>
на карту. Я пробовал все предложения от DeepSeek и CHATGPT, те же результаты. < /P>
suspend fun editStaffData(context: Context, staff: StaffMember, imageBitmap: Bitmap?, fieldToEdit: String): Result {
return try {
// If a new imageUri is provided, upload it and update the staff's imageUrl.
val updatedStaff = if (imageBitmap != null) {
val imageUrl = uploadImage(context, imageBitmap, staff.id)
staff.copy(imageUrl = imageUrl)
} else {
staff
}

when(fieldToEdit) {
DatabaseField.OnCallDates.name -> {
val updatedCallDates = updatedStaff.onCallDates.ifEmpty {
emptyList()
}

withContext(Dispatchers.IO) {
val client = getSupabaseClient()
client.from("staff")
.update(mapOf("on_call_dates" to updatedCallDates)) {
filter {
eq("id", staff.id)
}
}
}
}

DatabaseField.GymCallDates.name -> {
val updatedGymDates = updatedStaff.gymCallDates.ifEmpty {
emptyList()
}

withContext(Dispatchers.IO) {
val client = getSupabaseClient()
client.from("staff")
.update(mapOf("gym_call_dates" to updatedGymDates)) {
filter {
eq("id", staff.id)
}
}
}
}

DatabaseField.LeaveDates.name -> {
val updatedLeaveDates = updatedStaff.leaveDates.ifEmpty {
emptyList()
}

withContext(Dispatchers.IO) {
val client = getSupabaseClient()
client.from("staff")
.update(mapOf("leave_dates" to updatedLeaveDates)) {
filter {
eq("id", staff.id)
}
}
}
}

else -> {
withContext(Dispatchers.IO) {
val client = getSupabaseClient()

val updatedStaffMap = if (imageBitmap != null) {
mapOf(
"first_name" to staff.firstName,
"last_name" to staff.lastName,
"phone" to staff.phone,
"image_url" to staff.imageUrl
)
} else{
mapOf(
"first_name" to staff.firstName,
"last_name" to staff.lastName,
"phone" to staff.phone
)
}

client.from("staff")
.update( updatedStaffMap
) {
filter { eq("id", staff.id) }
}
}
}
}

Result.success(Unit)
} catch (e: Exception) {
Result.failure(e)
}
}
< /code>
Мне нужна помощь, я не хочу изменять тип данных на строку. Это DataClass: < /p>
@Serializable
data class StaffMember(
@SerialName("id") val id: String = "",
@SerialName("first_name") val firstName: String,
@SerialName("last_name") val lastName: String,
@SerialName("staff_role") val staffRole: Int,
@SerialName("unit") val unit: Int,
@SerialName("on_call_dates") val onCallDates: List = emptyList(),
@SerialName("gym_call_dates") val gymCallDates: List = emptyList(),
@SerialName("leave_dates") val leaveDates: List = emptyList(),
@SerialName("phone") val phone: String,
@SerialName("image_url") val imageUrl: String = ""
)


Подробнее здесь: https://stackoverflow.com/questions/794 ... kotlin-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»