Android: версия таблицы dataVersion не обновляется из ответа API, в то время как версия каталога обновляетсяAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android: версия таблицы dataVersion не обновляется из ответа API, в то время как версия каталога обновляется

Сообщение Anonymous »

Я работаю над мобильным банковским приложением для прохождения стажировки. Мне нужна помощь в решении этой проблемы: у нас есть каталоги/таблицы базы данных приложений с даннымиVersions, и у нас есть один каталог/каталог/таблица, это просто каталог имен всех других таблиц и их версий данных. Проблема в том, что каталоги/таблицы базы данных приложений не извлекают данные обратно, чтобы они соответствовали каталогу, который показывает версии данных, поступающие обратно. Правильно, база данных приложения должна иметь ту же версию данных, что и каталог. Я предоставлю некоторые методы из кода для контекста.

Код: Выделить всё

suspend fun saveServiceProviderCategories(data: String?) {
val result = data?.convertFromJson()
val directoryForSave =
result?.data?.apply {
val images = mutableListOf()
this.forEach {
val hashPart = if (it.icon?.base64 != null && it.icon?.base64!!.length > 50) it.icon?.base64?.toMD5()?.take(30) else uuidString62()
val fileName = "${it.id}_$hashPart"

it.iconPath = fileName
it.icon?.let { icon -> images.add(icon) }
}
images.saveImagesInCache()
}

directoryForSave?.apply {
filter { it.isDeleted == true }.forEach { it.id?.let { it1 ->
dao.deleteServiceProviderCategory(
it1
)
} }
filter { it.isDeleted != true }.let {
dao.saveServiceProviderCategory(it)
}

if (result.dataVersion != null) {
appPreferences.saveServiceProviderCategoryVersion(result.dataVersion?.toLongOrNull() ?: 0L)
}
}
}
Я установил точки останова и отладил, я вручную изменил dataVersion «directoryServiceProviderCategory» в каталоге, чтобы он соответствовал нижнему значению в фактической таблице. (Информация ниже)
Фактическая таблица каталог_Service_Provider_Category — 31573.
dv_of_directories (directory_Service_Provider_Category) — 32090 (то же самое, что и сзади, фактическое значение также должно обновиться до 32090).
Теперь, что происходит, когда я это делаю: вызывается saveServiceProviderCategories(), и информация отладки показывает, что dataVersion имеет значение null, поэтому он проходит через метод, а затем, когда дело доходит до
if (result.dataVersion != null) {
appPreferences.saveServiceProviderCategoryVersion(result.dataVersion?.toLongOrNull() ?: 0L)
Поскольку dataVersion имеет значение null. Он пропускает это, если условие и метод завершены. DataVersion фактической таблицы увеличивается на 30 значений (как установлено серверной частью), а значение dv_of_directories возвращается к 32090.
Не ожидаю чудесных решений, но любые советы и помощь будут оценены по достоинству. Старшему, назначенному мне помогать, трудно объяснить мне, как решить эту задачу, и он вроде как верит в то, что ребенка нужно бросать в воду, пока он не научится выплывать сам, лол.

Подробнее здесь: https://stackoverflow.com/questions/797 ... gue-versio
Ответить

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

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

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

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

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