如何将来自Firestore集合的数据绑定到Flutter中的dropdownfromfield?

时间:2019-12-12 18:46:14

标签: flutter google-cloud-firestore

我在Firestore(“字段”)上有一个集合,我想将他的集合用作flutter应用程序中dropdownform字段的项目源。我能够使用静态数据源创建一个dropdownfield,但不知道如何从firestore绑定数据。

这是带有静态数据源的dropdownform字段的代码。

                        DropDownFormField(
                        titleText: "Healthcare Field",
                        hintText: "Please choose one",
                        value: field,
                        dataSource: [
                          {
                            "display": "Running",
                            "value": "Running",
                          },
                          {
                            "display": "Climbing",
                            "value": "Climbing",
                          },
                          {
                            "display": "Walking",
                            "value": "Walking",
                          },
                          {
                            "display": "Swimming",
                            "value": "Swimming",
                          },
                          {
                            "display": "Soccer Practice",
                            "value": "Soccer Practice",
                          },
                          {
                            "display": "Baseball Practice",
                            "value": "Baseball Practice",
                          },
                          {
                            "display": "Football Practice",
                            "value": "Football Practice",
                          },
                        ],
                        onChanged: (value) {
                          setState(() {
                            field = value;
                          });
                        },
                        textField: 'display',
                        valueField: 'value',
                      ), 

1 个答案:

答案 0 :(得分:0)

据我了解,您想用您在集合中拥有的文档名称填充下拉列表。

实际上,您需要检索所有文档并将document.id保存在一个列表中,稍后将其传递给下拉列表。

以下是获取集合的文档ID的示例

void getData() {
  databaseReference
      .collection("[COLLECTION]")
      .getDocuments()
      .then((QuerySnapshot snapshot) {
    snapshot.documents.forEach((f) => print('${f.id}}'));
  });
}

因此,对于您的情况,您无需一次打印文档ID,而需要一次将其传递给您的下拉ID。