Как получить все documentsID из этого класса - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть этот метод внутри этого класса, и я хочу вызвать этот метод на экране и получить все идентификаторы внутри карты ().


final databaseReference = Firestore.instance;

class CompanyServices {
  static CollectionReference get companies =>
      databaseReference.collection('companies');

  static getDocumentID() async {
    final QuerySnapshot result = await companies.getDocuments();
    final List<DocumentSnapshot> documents = result.documents;

    documents.forEach((data) {
      print(data.documentID);
    });
  }
}

и на экране я вызываю так:

CompanyServices.getDocumentID()

и у меня есть эта ошибка: type 'Future<dynamic>' is not a subtype of type 'String'

Как мне вызвать этот метод, чтобы получить все documentsID внутри карты?

Thx заранее.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Итак ... Спасибо @ Abbas.M и @ julemand101 за ваши идеи. Вы были моим психологом по коду: P

Отвечая на мой собственный вопрос: я пытался получить будущее без .then и всего такого, и ждал, чтобы получить ответ до его появления ... Я забыл свое прошлое с Обещания в JS.

Я получил работу, преобразовав весь мой экран без состояния в statefull и извлекая эти данные, сохраняя их в переменную состояния, и вместе с ней мой виджет перестраивался, и у меня был этот вар в любое время, когда я захочу .

Спасибо за вашу поддержку и ответы.

Могу ли я проголосовать за оба ваших ответа? : P

0 голосов
/ 16 апреля 2020

Кажется, что ваша проблема в DocumentSnapshot, поскольку, когда вы делаете для каждого l oop, data имеет тип DocumentSnapshot, а когда вы делаете data.documentID, кажется, что это поле не является строка, но вместо этого - Future, вы можете попробовать сделать await data.documentID.toString() внутри вашего отпечатка, но я бы не стал его рекомендовать, так как не знаю формы данных, но это может сработать

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