Dart: Как сделать элементы документа FireStore доступными в другом классе - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть служба FireBase, которая обрабатывает получение всех данных из Firebase Firestore.

Когда мне нужно вызвать конкретный документ, у меня есть метод getId(id), который я использую, передавая нужный идентификатор.

List<Hero> hero = [];


getId(id) {
    fs.Firestore store = firestore();
    fs.CollectionReference  ref = store.collection('items');

    ref.doc(id).get().then((documentReference) {
      var docRef = documentReference.data();
      var id = docRef['id'];
      bool pickupNeeded = docRef['pickupNeeded'];
      var name = docRef['name'];
      var url = docRef['id'].toString();
      bool partPickup = docRef['partPickup'];
      var item = Hero(id, name, pickupNeeded, url, partPickup);
      hero.insert(0, item);
    });
    return hero;
  }

Вернувшись в класс, звонящий, я звоню:

@override
  void onActivate(_, RouterState current) async {
    final id = RoutePaths().getId(current.parameters);
    machineNumber = id.toString();
    if (id != null) hero = await (_service.getId(machineNumber));
  }

_service - это FirebaseService.

Вернувшись в класс Hero, мне нужно иметь возможность доступа к отдельным элементам из документа: id, pickupNeeded, url, partPickup и т. Д.

Как это сделать, если эти компоненты являются частью списка?

Или есть лучший способ вызвать документ, чтобы сделать значения более легкими для доступа по отдельности? Спасибо

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