Firebase - добавить значение в массив, который уже существует - PullRequest
0 голосов
/ 24 апреля 2020

Как добавить значение в массив в Firebase, ЕСЛИ (!!) это значение уже существует в массиве?

В документации я смог найти только метод arrayUnion, однако он проверяет, значение уже находится в массиве и добавляет его, только если это не так.

В частности, у меня есть следующий код флаттера:

Future logCount () async {
    return await collection.document(id).setData({
      'counts': FieldValue.arrayUnion([count]),
    });
  }

Знаете ли вы, как изменить этот код или что я мог бы использовать, чтобы не столкнуться с этой проблемой с arrayUnion? Я не смог найти что-то подходящее в документации.

Спасибо за помощь!

1 Ответ

2 голосов
/ 24 апреля 2020

Вы можете получить документ и добавить свой элемент в массив и обновить удаленный документ;

Future logCount() async {
  DocumentSnapshot ds = await collection.document(id).get();
  List counts = ds.data['counts'];
  counts.add(count);

  return await collection.document(id).updateData({'counts': counts});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...