Загрузка Set<String> дает ошибку в флаттере

Итак, я создаю плитки чипов, которые хранятся в наборе, но когда я пытаюсь загрузить его в firebase, я получаю эту ошибку «Необработанное исключение: недопустимый аргумент: экземпляр« _CompactLinkedHashSet »».

Я выделил код и упростил его, чтобы он выглядел так:

...

Set<String> _tags = <String>{};
_tags.add('Test1');

Firestore.instance
    .collection('tags')
    .document(tagsID)
    .setData({
  'tags': _tags,
});

...

Я пытался отладить его, и я не могу загрузить его, поэтому есть ли другой способ получить данные из набора и загрузить их в Firebase? Другой тип данных, который я могу использовать, который примет Firebase?

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
1
0
537
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я бы посоветовал вам следовать ответу на этот вопрос: Добавление объекта в Cloud Firestore с помощью Flutter

И вы можете в основном загружать любые данные, которые хотите

Ответ принят как подходящий

Взгляните на файл типы данных, которые поддерживает Firestore. Наборы не поддерживаются. Вы можете преобразовать свой набор в строку JSON или в список:

List<String> tagsList = List<String>.from(_tags);

В дополнение к ответу Брайсона Тилла, если вам нужно использовать наборы в своем коде, я бы рекомендовал вам использовать метод toList() перед загрузкой в ​​Firestore.

Другие вопросы по теме