Я пытаюсь создать приложение с различными списками игр.В качестве бэкэнда я использую Firebase, и соединение работает нормально, я проверил его.В любом случае, у меня проблемы с заменой фиктивных данных реальными данными из firebase.Я всегда получаю эту ошибку:
тип 'Future ' не является подтипом типа 'List '
У меня есть следующая функция:
getGames() async{
List newGamesList = [];
QuerySnapshot result = awaitFirestore.instance.collection('products').getDocuments();
List<DocumentSnapshot> documents = result.documents;
documents.forEach((DocumentSnapshot doc) {
Game game = new Game.fromDocument(doc);
newGamesList.add(game);
});
}
«Игра» выглядит так:
factory Game.fromDocument(DocumentSnapshot document) {
return new Game(
name: document['name'],
box: document['box'],
cover: document['cover'],
description: document['description'],
);
}
В моем виджете сборки я называю «getGames»:
new HorizontalGameController(getGames()),
Любая идея, почему возникает эта ошибка и какрешить это?
РЕДАКТИРОВАТЬ:
Для лучшего понимания вот мой HorizontalGameController:
class HorizontalGameController extends StatelessWidget {
HorizontalGameController(this.gameItems);
final List<Game> gameItems;
@override
Widget build(BuildContext context) {
return new SizedBox.fromSize(
size: const Size.fromHeight(240.0),
child: new ListView.builder(
itemCount: 1,
scrollDirection: Axis.horizontal,
padding: const EdgeInsets.only(left: 12.0, top: 4.0),
itemBuilder: (BuildContext context, int position) {
return GameContainerItem(context, gameItems[position]);
}),
);
}
}