Возможно ли обновить только элемент дочернего массива документа Firestore - PullRequest
0 голосов
/ 26 марта 2020

Мне нужно увеличить или уменьшить поле maxQty, и структура данных добавлена ​​на изображениях ниже.

Подано изображение с красной меткой, и я добавил другое изображение, чтобы понять структуру данных

Есть ли способ сделать это?

firestore update document filed array

firestore update document filed array

1 Ответ

0 голосов
/ 26 марта 2020

Согласно официальной документации относительно обновления элементов массива :

Если ваш документ содержит поле массива, вы можете использовать arrayUnion() и arrayRemove() для добавления и удаления elements.

К сожалению, arrayUnion() не относится к вашему сценарию использования, так как ваш массив businessCard содержит объекты, а не строки. Есть два варианта, один из которых - прочитать весь массив, увеличить maxQty, а затем записать документ обратно на сервер. Второй - обновить документ с помощью Map, скопировав в него значения вручную для каждого из полей, которые вы хотите изменить.

Обратите внимание, что операция обновления - не совместим с автоматическим сопоставлением полей c, которое происходит с Java объектами POJO. Вам разрешено использовать только объекты карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...