FieldValue.arrayRemove () для удаления объекта из массива объектов на основе значения свойства - PullRequest
0 голосов
/ 11 января 2020

У меня есть документ со следующей структурой:

{
    "email" : "a@gmail.com",
    "value" : 100,
    "children" : [
                  {
                    "email" : "b@gmail.com",
                    "value" : 100
                  },
                  {
                    "email" : "b@gmail.com",
                    "value" : 200
                  }
                 ]
}

Я хочу удалить все элементы с адресом электронной почты b@gmail.com из массива children. Я могу удалить один элемент, если передам весь объект, подлежащий удалению, следующим образом:

FieldValue.arrayRemove(childObject)

Но я хочу, чтобы оба объекта с адресом электронной почты b@gmail.com были удалены. Есть ли способ добиться этого, используя FieldValue.arrayRemove()?

1 Ответ

1 голос
/ 11 января 2020

Операция arrayRemove удаляет именно тот элемент, который вы укажете из массива. Невозможно передать частичный объект и удалить все элементы массива, которые соответствуют частичной информации. Вам нужно будет передать каждый завершенный элемент, который вы хотите удалить.

Если вы еще не знаете, что это за элементы, вам обычно нужно сначала прочитать документ, l oop поверх элементов в массиве, чтобы удалить их, и записать измененный массив обратно в документ.

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