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);
}
}),
);
}
}