Я следую одному руководству по электронной коммерции Flutter, используя Firestore и провайдера флаттера.
Я хотел получить все данные из базы данных Firestore Db, но проблема в том, что я не знаю, как инициализировать класс, который я собираюсь использовать для получения данных из базы данных Firebare. Пожалуйста, помогите. И если у вас есть лучшие подходы, вы можете поделиться своими знаниями со мной. это код ниже:
import 'package:flutter/material.dart';
import 'package:shopping/db/product.dart';
import 'package:shopping/models/product.dart';
class AppProvider with ChangeNotifier {
List<Product>_fearturedProducts=[];
ProductService _productService=new ProductService();
AppProvider(){
//please how to initialize class AppProvider here
}
//getter
List<Product> get featuredProducts=>_fearturedProducts;
//method
void _getFeaturedProducts()async{
_fearturedProducts=await _productService.getFeaturedProducts();
notifyListeners();
}
}
код для класса ProductService:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:shopping/models/product.dart';
class ProductService{
Firestore _firestore=Firestore.instance;
String collection="Products";
Future<List<Product>>getFeaturedProducts(){
_firestore.collection(collection).where('featured', isEqualTo:true).getDocuments()
.then((snap){
List<Product>featuredProducts=[];
snap.documents.map((snapshot)=> featuredProducts.add(Product.fromSnapshot(snapshot)));
return featuredProducts;
});
}
}