Flutter FireBase

Добавляется коллекция с категорией и листом items. Если добавить заново item то, создается новый документ(категория) и лист items. Можно ли сделать добавление item в категорию с фильтрацией? то есть если добавляешь item в лист, он добавлялся именно в ту категорию, которая была выбрана при добавлении.

class DB {
  final CollectionReference categoryData =
      Firestore.instance.collection('category');

  Future addCategoryWithItem(Categories categories) async {
    return await categoryData.document().setData(categories.toMap());
  }
}

class Categories {
  String categoryname, id;
  List<Item> item;
  Categories({this.categoryname, this.id, this.item});

  Map<String, dynamic> toMap() {
    return {
      'categoryName': categoryname,
      'id': id,
      'items': item == null ? [] : item.map((e) => e.toMap()).toList()
    };
  }
}

class Item {
  String data, data1, data2;
  Categories category;
  Item({
    this.category,
    this.data,
    this.data1,
    this.data2,
  });

  Map<String, dynamic> toMap() {
    return {
      'categoryName': category.categoryname,
      'data': data,
      'data1': data1,
      'data2': data2,
    };
  }
}

class Test extends StatefulWidget {
  @override
  _TestState createState() => _TestState();
}

class _TestState extends State<Test> {
  Items items = Items();
  Categories categories = Categories(item: []);
  @override
  Widget build(BuildContext context) {
    return Center(
      child: RaisedButton(onPressed: () async {
        if (items != null) {
          setState(() {
            categories.item.add(items);
          });
          await DB().addCategoryWithItem(categories);
        }
      }),
    );
  }
}

Ответы (0 шт):