[英]How to populate items in a DropdownButtonFormField in Flutter with data in Firebase Firestore
我想使用 firebase Firestore 上的数据来填充 DropDownFormField 中的项目。 我在 Firestore 中创建了这个数组来保存这些数据
在这里,我想在下拉列表中显示deitaryItems 。
我已经通过使用下面的代码尝试了这个
CommonDropDownField(
items: snapshot.data!.docs.map((DocumentSnapshot document) {
Map<String, dynamic> data = document.data()! as Map<String, dynamic>;
return data["attributesArray"];
}).toList().cast<String>(),
label: "Select Dietary Attribute",
onChanged: print,
width: 0.32,
height: 0.05,
focusNode: _dietaryFocus,
hint: 'Select Dietary Attribute',
validator: null,
),
CommonDropDownField 是一个自定义的 DropdownButtonFormField()。 但这给出了一个错误:
需要一个“String”类型的值,但得到一个“Null”类型的值
问题来自于此:
items: snapshot.data!.docs.map((DocumentSnapshot document) {
Map<String, dynamic> data = document.data()! as Map<String, dynamic>;
return data["attributesArray"];
}).toList().cast<String>(),
您正在尝试从文档数据的字段中提取attributesArray
,但在屏幕截图中,您显示的attributesArray
实际上是一个文档本身 - 一个仅包含一个dieteraryItems
数组字段的文档。
因此,您要么应该提取dieteraryItems
字段,要么需要加载正确的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.