Я новичок во Flutter с Firebase и пытаюсь загрузить несколько массивов, хранящихся в Firebase, в DropdownButton.
Этот фрагмент кода работает, когда я вызываю его с кнопки. Он возвращает список напитков, которые я могу напечатать на экране:
Future<List<String>> get drinks async {
QuerySnapshot docs = await _constantes.getDocuments();
List<String> res = List();
List<Map<String, dynamic>> datos = List();
for (var d in docs.documents) {
datos.add(d.data);
}
for (var d in datos[0]['drinks'].toList()) {
res.add(d.toString());
}
return res;
}
Но моя проблема в том, что я хотел бы загрузить этот список в DropdownButton, чтобы пользователь мог выбрать один из напитков, когда приложение показывает ему форму:
DropdownButtonFormField(
hint: Text('Choose a drink'),
value: _currentDrink ?? 'Water',
items: _db.drinks.then((drinks) {
List<DropdownMenuItem> datos = List();
for (var d in drinks) {
datos.add(DropdownMenuItem(
value: d,
child: Text(d),
));
}
return datos;
}),
onChanged: (val) => setState(() => _currentDrink = val),
),
Но это не сработает, потому что в результате получается будущее.
Как я могу это исправить?
Спасибо.