У меня действительно странная проблема, я запустил отладчик и прошел по коду, чтобы увидеть каждый элемент из Firestore
У меня есть список продуктов в моей базе данных Firestore
Структура
shop -> shopId -> products -> productList
У меня есть класс данных следующим образом
@Parcelize
data class Producto(
val imagenProducto: String = "",
val nombreProducto: String = "",
val descProducto: String = "",
val precio: Int = 0,
val hasDescuento: Boolean = false,
val tipoDescuento: Double = 0.0,
val isCombo: Boolean = false
) : Parcelable
А теперь код, который я использую для фильтрации по isCombo
, создает два списка, один из которых будет содержать все продукты (с скидка при необходимости) и комбо (если для логического значения isCombo
установлено значение true)
Это странно, потому что мой код выбирает все эти документы и отправляет их на мой взгляд
suspend fun getProductosList(comercioId:String):Resource<MutableList<Producto>>{
val productList = mutableListOf<Producto>()
val snapshot = FirebaseFirestore.getInstance().collection("comercios").document(comercioId).collection("products").get().await()
for(producto in snapshot){
productList.add(producto.toObject(Producto::class.java))
}
return Resource.Success(productList)
}
Здесь у меня есть подколлекция, в которой находятся конечные продукты магазина (comercio).
Задача
Итак, вот что происходит, после того, как я получаю все эти документы, список приходит на мой взгляд с данными каждого элемента списка, но одно значение продукта не соответствует ожидаемому.
У меня есть место в одном документе isCombo = true
, но когда это касается моего приложения, оно помещает это значение как ложное, но другой бо olean hasDescuento
поставляется с правильным значением
Что я пробовал
- очистить и восстановить
- сделать недействительным кеш / перезапустить
- выполнить с помощью отладчик, чтобы увидеть каждый элемент, посмотреть, вставляю ли я свою переменную с опечаткой
- проверьте мою ссылку на данные
Вот выходные данные, вот как у меня хранятся данные по моей ссылке
здесь isCombo
установлено на true
Теперь это то, что заканчивается на мой взгляд, при извлечении этого документа
Итак, здесь isCombo
принимает значение false, но мой другой логический hasDescuento имеет правильное значение из базу данных (для другого другого продукта), я подозревал аннотацию Parcelize в своем классе данных, но все остальные данные, которые не isCombo, извлекаются нормально
Что может произойти?