Неверные данные. FieldValue.increment () может использоваться только с set () и update (), null)
Как ясно указывает на ошибку, вы можете использовать FieldValue.increment()
только при использовании set()
и update()
функции и не при использовании FieldValue.arrayUnion
. Вы не можете добавлять элемент в массив и увеличивать один из его элементов одновременно. Кроме того, FieldValue.increment()
может только увеличивать свойство типа номер, которое должно существовать отдельно в документе, а не как член массива.
Если вам нужно увеличить значение член массива, вы должны получить этот массив на клиенте, получить нужный элемент, обновить его и затем записать документ обратно.
Редактировать:
Если следующее item:
[{'productId':'1234','count':10}]
Это объект с двумя свойствами, которые существуют в массиве объектов, вы не можете использовать FieldValue.increment()
, чтобы увеличить свойство count
отдельного объекта. Вы не можете просто отобразить этот объект в пользовательский объект. На самом деле, у вас есть документ HashMaps. Поэтому вам нужно написать код для этого, итератив по списку, найти соответствующее свойство count
, которое вы хотите увеличить, увеличить его, а затем записать документ обратно.