Я использую dart
, чтобы запросить мою коллекцию в firestore, чтобы получить список строк.Вот структура пожарного депо:
![FireStore List](https://i.stack.imgur.com/V776L.png)
Вот мой код:
Future getIngredients() async {
var firestore = Firestore.instance;
List<String> ingredients = new List<String>();
// this will return exactly one document every time.
CollectionReference col = firestore.collection("ingredients");
Query query = col.where('name', isEqualTo: widget.dish_name.toString().toLowerCase());
// How do I retrieve the ingredient list?
}
Есть идеи?
Обновление
Вот что я сделал после перехода по этой ссылке.
Future getIngredients() async {
var list = [];
Firestore.instance
.collection('ingredients')
.where("name", isEqualTo: widget.dish_name.toString().toLowerCase())
.snapshots()
.listen((data) =>
data.documents.forEach((doc) => list.add(doc["ingredients"])));
print("First item is" + list[0]);
return list;
}
Однако список кажется пустым.Однако, когда я печатаю (doc ["ингридиенты"]) , я получаю все данные.Что я делаю неправильно?
Второе обновление
Итак, мне удалось получить данные, и теперь я пытаюсь отобразить их с помощью следующего кода:
new ListView.builder(
itemExtent: 90,
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index) {
return SingleIngredient(
ingredient_name: snapshot.data[index].data["ingredients"],
);
});
ОднакоЯ получаю следующую ошибку:
У класса 'QuerySnapshot' нет получателя экземпляра 'length'.I / flutter (31722): получатель: экземпляр 'QuerySnapshot' I / flutter (31722): пробный вызов: длина
Есть идеи, как перебрать список ингредиентов?