我在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',
),
答案 0 :(得分:0)
据我了解,您想用您在集合中拥有的文档名称填充下拉列表。
实际上,您需要检索所有文档并将document.id
保存在一个列表中,稍后将其传递给下拉列表。
以下是获取集合的文档ID的示例
void getData() {
databaseReference
.collection("[COLLECTION]")
.getDocuments()
.then((QuerySnapshot snapshot) {
snapshot.documents.forEach((f) => print('${f.id}}'));
});
}
因此,对于您的情况,您无需一次打印文档ID,而需要一次将其传递给您的下拉ID。