Моя база данных Firebase имеет коллекцию под названием «главное меню» и массив элементов меню, где каждая сущность имеет ссылку на элемент из коллекции «элементы». Я использовал поток, чтобы получить документы из главного меню. Теперь, когда пользователь переходит к определенной категории (один документ из главного меню), я хочу показать список элементов в этой категории, и он должен обновляться в режиме реального времени, когда доступность элемента изменяется на бэкэнде. , Вот как выглядит моя база данных: коллекция главного меню и коллекция предметов
Это то, что я пробовал до сих пор. Здесь объект меню соответствует одному документу из коллекции главного меню.
Future<List<Item>> itemListFromMenu(Menu menu) async{
List<Item> items = [];
for (var menuItem in menu.menuItems) {
var document = menuItem['item'];
var snap = await document.get();
print(snap.data['name']);
if(snap.exists && snap.data['available']){
items.add(Item(
available: snap.data['available'] ?? '',
name: snap.data['name'] ?? '',
description: snap.data['description'] ?? '',
persons: snap.data['persons'] ?? '',
price: snap.data['price'] ?? ''
));
}else{
print("No data");
}
}
return items;
}
Но это не будет обновлять в реальном времени, так как он возвращает список Future. Как это можно сделать?