首页 > 解决方案 > 找不到正确的提供者> 在此 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'];
  }

标签: firebasefluttergoogle-cloud-firestorefirebase-authenticationflutter-dependencies

解决方案


推荐阅读