Как получить поток списка элементов в реальном времени из ссылок, предоставленных путем итерации другого списка в Flutter / firebase? - PullRequest
0 голосов
/ 10 апреля 2020

Моя база данных 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. Как это можно сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...