问题描述
基本上,我正在创建一个电子商务应用程序,并且在主页中,该应用程序将从firebase中读取商品数据,并且此错误不断出现,无法在Homepage小部件上方找到正确的提供程序。
这是我的代码:
main.dart:
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'];
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)