繁体   English   中英

如何使用 Firebase Firestore 中的数据填充 Flutter 中的 DropdownButtonFormField 中的项目

[英]How to populate items in a DropdownButtonFormField in Flutter with data in Firebase Firestore

我想使用 firebase Firestore 上的数据来填充 DropDownFormField 中的项目。 我在 Firestore 中创建了这个数组来保存这些数据

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM