Получить данные о сборе пожаров в riverpod?
Я создал собственный виджет флаттера (StreamBuilder) для получения данных из firestore. Я использую эти данные для заполнения GridView, содержащего обувь.
Мне также нужны данные из другой коллекции для заполнения GridView. Эта коллекция содержит все идентификаторы обуви, которые понравились определенному пользователю. Проблема в том, что я не хочу использовать вложенные StreamBuilders для получения второй коллекции.
Можно ли получить понравившиеся shoeID у провайдера, такого как riverpod, и слушать обновления?
final _firestore = FirebaseFirestore.instance;
class ProductsList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: _firestore.collection('shoes').orderBy('title').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(
backgroundColor: Colors.lightBlueAccent,
),
);
}
final shoes = snapshot.data.docs;
List<ProductColumn> productColumnsList = [];
for (var shoe in shoes) {
final title = shoe.data()['title'];
final price = shoe.data()['price'];
final imgUrl = shoe.data()['imgUrl'];
final rating = shoe.data()['rating'];
final sale = shoe.data()['sale'];
final subTitle = shoe.data()['subTitle'];
final isLiked = false;
productColumnsList.add(
ProductColumn(
title: title,
price: price,
imgUrl: imgUrl,
rating: rating,
sale: sale,
subTitle: subTitle,
isLiked: isLiked,
),
);
}
return Expanded(
child: GridView.count(
childAspectRatio: 0.62,
crossAxisSpacing: 8.0,
mainAxisSpacing: 8.0,
crossAxisCount: 2,
children: productColumnsList,
),
);
},
);
}
}