我是《颤栗》和《火种》的新手。
我有一个名为“菜肴”的集合,其中我有许多文档(例如名称、描述等),我还有一个名为成分的子集合,其中我有作为文档的id、名称和数量。
我要做的是取回所有含有配料的菜肴。
我有一个模型
class DishModel{
static const ID = "id";
static const DESCRIPTION = "description";
static const IMAGE = "image";
static const NAME = "name";
static const INGREDIENTS = "ingredients";
int _id;
String _description;
String _image;
String _name;
double _price;
int _rates;
double _rating;
List<IngredientModel> _ingredients;
//GETTERS
int get id => _id;
String get description => _description;
String get image => _image;
String get name => _name;
List<IngredientModel> get ingredients => _ingredients;
DishModel.fromSnapshot(DocumentSnapshot snapshot){
_id = snapshot.data()[ID];
_description = snapshot.data()[DESCRIPTION];
_image = snapshot.data()[IMAGE];
_name = snapshot.data()[NAME];
}
}
IngredientModel模型
class IngredientModel{
static const ID = "id";
static const NAME = "name";
static const QUANTITY = "quantity";
int _id;
String _name;
String _quantity;
//GETTERS
int get id => _id;
String get name => _name;
String get quantity => _quantity;
IngredientModel.fromSnapshot(DocumentSnapshot snapshot){
_id = snapshot.data()[ID];
_name = snapshot.data()[NAME];
_quantity = snapshot.data()[QUANTITY];
}
}
DishHelper
class DishServices{
String collection = "dishes";
FirebaseFirestore _firestore = FirebaseFirestore.instance;
String subcollection = "ingredients";
Future<List<DishModel>> getDishes() async
{
DishModel dishTemp ;
List<DishModel> dishes = [];
_firestore.collection(collection).get().then((result) {
for (DocumentSnapshot dish in result.docs) {
dishTemp = DishModel.fromSnapshot(dish);
dish.reference.collection(subcollection).get().then((ingredientRes) {
for(DocumentSnapshot ingredient in ingredientRes.docs) {
dishTemp.ingredients.add(IngredientModel.fromSnapshot(ingredient));
}
});
dishes.add(dishTemp);
}
return dishes;
});
}
}
餐具供应商
class DishProvider with ChangeNotifier{
DishServices _dishServices = DishServices();
List<DishModel> dishes = [];
DishProvider.initialize(){
_loadDishes();
}
_loadDishes() async{
dishes = await _dishServices.getDishes();
notifyListeners();
}
}
主要我写了
runApp(MultiProvider(providers: [
ChangeNotifierProvider.value(value: DishProvider.initialize())
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'example_app',
theme: ThemeData(
primarySwatch: Colors.red,
),
home: ScreensController()
)));
}
和在家中(在构建方法中)
final dishProvider = Provider.of<DishProvider>(context);
但是如果我尝试打印<code>打印(dishProvider.disks)我获得了<code>颤振:null</code>而不是颤振:<code>DishModel</code>的实例
我该如何解决它并检索我的菜品信息?
谢谢大家
我发现了错误,它是在get Dish方法中,正确的是:
Future<List<DishModel>> getDishes() async
{
DishModel dishTemp ;
List<DishModel> dishes = [];
_firestore.collection(collection).get().then((result) {
for (DocumentSnapshot dish in result.docs) {
dishTemp = DishModel.fromSnapshot(dish);
List<IngredientModel> ing_temp = [];
dish.reference.collection(subcollection).get().then((ingredientRes) {
for(DocumentSnapshot ingredient in ingredientRes.docs) {
ing_temp.add(IngredientModel.fromSnapshot(ingredient));
}
dishTemp.ingredients = ing_temp;
});
dishes.add(dishTemp);
}
return dishes;
});
return dishes;
}
感谢大家
我认为在 getDishes()
循环中有一些东西。这是文档抛出数据的方式:
FirebaseFirestore.instance
.collection('users')
.get()
.then((QuerySnapshot querySnapshot) {
querySnapshot.docs.forEach((doc) {
print(doc["first_name"]);
});
});
以下文档:https://firebase.flutter.dev/docs/firestore/usage您可以尝试使用foreach
吗?
您需要获取DISPS文档的id才能检索子集合。
FirebaseFirestore.instance
.collection('dishes')
.doc(docId)
.collection('ingredients')
.snapshots(),
这是一个Github回购协议
问题内容: 我有一个大型SQL数据库,需要在其中验证表和列的结构(而不是数据本身)。因此,我需要生成所有表的列表,然后为每个表,其所有列,然后为每个列,其数据类型,长度/精度,序数位置以及它是否是该表的主键的一部分而生成。 我可以通过以下查询获得大部分所需信息: 但是,我不确定如何检查列是否是主键的一部分。另外,对于那些PK由不止一列组成的表,我想知道键中每一列的顺序位置。到目前为止,我发现的
我正在使用Laravel5.3,需要一些关于雄辩的模型查询的帮助。我有三个模型(UserDetails、Categories、Articles)。我在用户详细信息之间有关系- 每个关系都运行良好,即Userdetails::find(1)- 我有一种感觉,范围可能是答案,但他们似乎不工作,当我尝试它。 模型中的关系 UserDetails.php Categories.php 我研究了HasMan
我试图在一个旧的海军网页上抓取产品的URL。然而,它只是给出了产品列表的一部分,而不是全部(例如,当超过8个URL时,只给出8个URL)。我希望有人能帮我找出问题所在。
我们应该如何从kafka集群/动物园管理员处检索所有代理(已连接/已断开连接)的完整详细信息? 我发现以下方法只获取活动代理,但我想知道以前在集群中服务的代理的IP地址,但它现在已断开连接 以下代码片段给出了活动代理的列表: 输出: 我的机器-1:端口 我的机器-2:端口 我的机器-3:端口 我的机器-4:端口 我需要多节点 kafka 集群中所有已连接/已断开连接的代理的信息
Hy Guys我试图做的是从Firestore数据库中检索2个收集文档,并将其显示到我的代码中: 这允许我从特定用户检索数据,但我有另一个名为“shippingAddress”的表单,它创建了如下集合: 然后我必须检索上面的集合,但我不知道如何...因为在同一屏幕中,我检索“用户”集合以仅显示来自特定用户的数据,并且我还需要检索“shippingAddress”集合,因为在此类集合中还有其他要显示
我已经创建了一个azure函数,当一个新文档被添加到一个集合中时,它会被触发。 是否可以从该集合中选择特定文档,然后查询所选文档中的数据? 例如,在所谓的募集服装,我有一个文件,有一个ID: 12345Tops.我想查询ID为:12345Tops的文档中找到的数据。 或者检索集合中的第一个文档,然后查询第一个选定文档 我看过带有http触发器的azure函数:https://docs.micros