firebase - 找不到正确的提供者> 在此 CustomerHomePage 小部件上方
问题描述
基本上我正在创建一个电子商务应用程序,并且在主页中,该应用程序将从 firebase 读取项目数据并且此错误不断出现,在主页小部件上方找不到正确的提供程序。
这是我的代码:
主要飞镖:
class Bradat extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Brandat',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
platform: TargetPlatform.iOS,
),
home: StreamProvider(
create: (BuildContext context) => DatabaseService().getItemesList(),
catchError: (_, __) => null,
child: NavigationHomeScreen()
),
);
}
}
这是导航主屏幕:
class NavigationHomeScreen extends StatefulWidget {
@override
_NavigationHomeScreenState createState() => _NavigationHomeScreenState();
}
class _NavigationHomeScreenState extends State<NavigationHomeScreen> {
Widget screenView;
DrawerIndex drawerIndex;
@override
void initState() {
drawerIndex = DrawerIndex.HOME;
screenView = CustomerHomePage();
super.initState();
}
@override
Widget build(BuildContext context) {
final items = Provider.of<List<Abaya>>(context);
print(items);
return Container(
child: SafeArea(
top: false,
bottom: false,
child: Scaffold(
body: DrawerUserController(
screenIndex: drawerIndex,
drawerWidth: MediaQuery.of(context).size.width * 0.75,
onDrawerCall: (DrawerIndex drawerIndexdata) {
changeIndex(drawerIndexdata);
//callback from drawer for replace screen as user need with passing DrawerIndex(Enum index)
},
screenView: screenView,
//we replace screen view as we need on navigate starting screens like MyHomePage, HelpScreen, FeedbackScreen, etc...
),
),
),
);
}
这是我的数据库类:
class DatabaseService{
final CollectionReference userCollection = Firestore.instance.collection("User");
final CollectionReference itemCollection = Firestore.instance.collection("Item");
final CollectionReference storeCollection = Firestore.instance.collection("Store");
Future UpdateUserData(User user) async {
return await userCollection.document(user.uid).setData({
'firstName' :user.firstName,
'lastName' :user.lastName,
'phoneNumber' :user.phoneNumber,
});
}
Stream<QuerySnapshot> get users{
return userCollection.snapshots();
}
Future UpdateItemData(Abaya item) async {
return await itemCollection.document(item.itemId).setData({
'title' :item.title,
'price' :item.price,
'oldPrice' :item.oldPrice,
'images' :item.images,
'colors': item.colors,
'sizes': item.sizes,
'storeId': item.storeId,
'quantity': item.quantity,
});
}
Stream<List<Abaya>> getItemesList(){
return itemCollection.snapshots()
.map((snapShot) => snapShot.documents
.map((document) => Abaya.fromJson(document.data))
.toList());
}
Future UpdateStoreData(Store store) async {
return await storeCollection.document(store.idStore).setData({
'brand' :store.brand,
'rank' :store.rank,
'logo' :store.logo,
});
}
Stream<List<Store>> getStoreList(){
return storeCollection.snapshots()
.map((snapShot) => snapShot.documents
.map((document) => Store.fromJson(document.data))
.toList());
}
}
这是我的项目模型类:
class Abaya{
String itemId;
String title;
double price;
double oldPrice;
List<String> images;
List<String> colors;
List<String> sizes;
int quantity;
String storeId;
Abaya({this.itemId,this.title, this.price, this.oldPrice, this.images, this.colors,
this.sizes, this.quantity, this.storeId});
Abaya.fromJson(Map<String, dynamic> parsedJSON)
: title = parsedJSON['title'],
price = parsedJSON['price'],
oldPrice = parsedJSON['oldPrice'],
images = parsedJSON['images'],
colors = parsedJSON['colors'],
sizes = parsedJSON['sizes'],
storeId = parsedJSON['storeId'],
quantity = parsedJSON['quantity'];
}
解决方案
推荐阅读
- laravel - 流明名媛授权流程
- android - 创建自定义等候室
- c# - 我可以在 asp mvc core 2.0 中添加第四个路由令牌吗?
- c# - 泛型构造要求类型“Cell<'T>”是非托管类型
- c# - 调用抛出 InvalidOperationException
- python-3.x - 在 django2 中,如何分别为新对象和旧对象设置不同的默认值?
- d3.js - 传单底图上的静态 svg。d3 js json的投影
- python - 无法从 django 管理面板创建新帖子,但它是从 python shell 创建的
- javascript - 如何在网页上显示来自 Twitter 的标签计数
- r - bookdown中章节标题和文本的奇怪拉伸