Я планирую не удалять значения, которые уже существуют в моем массиве, у меня есть этот массив
products [{
- 0
productPrice : 123
productName: 32
- 1
productPrice : 432
productName: 21
]}
Теперь я обновляю цену элемента 0 в моем массиве, чтобы получить весь массив, измените цену, а затем я просто отправляю массив для тех же узлов продуктов, но когда я делаю это с обновлением, я ожидаю просто коснуться и обновить значение цены, но вместо этого .update стирает поле productName
suspend fun updateProductPrice(position:Int,shopId: String,price: Int,productList:MutableList<Product>): Resource<Unit> {
productList[position].price = price
FirebaseFirestore.getInstance().collection("shops").document(shopId).update("products",productList).await()
return Resource.Success(Unit)
}
Класс данных моего продукта
data class Products(val productPrice:Int = 0)
Теперь я знаю, что у меня нет productName здесь, но мне не нужно его иметь, если я буду единственным объектом во всем массиве, который я буду обновление - это цена, поэтому, почему мое обновление стирает productName, если я сказал просто обновить значение цены?
Кроме того, я знаю, что добавление productName: String = "" не удалит его и не оставит так, как оно есть, но мой вариант использования требует только прикосновения к этому элементу цены, а не к другим, потому что у меня есть больше элементов в моем классе данных Products, но если я также размещу их, чтобы иметь весь документ, он также будет добавьте те поля в массив, который мне не нужен, потому что он увеличит размер документа со значениями полей по умолчанию, которые я не хочу обновлять
Любая подсказка?