Функция имеет тип возврата «Future <String>», но не заканчивается оператором возврата - PullRequest
0 голосов
/ 07 декабря 2018

Я пишу метод Future в Дартс (флаттер).Он просто запускает запрос в Firebase и возвращает результат.Но даже до написания моей бизнес-логики я получаю предупреждающее сообщение:

[dart] Эта функция имеет тип возврата «Future», но не заканчивается оператором return.[missing_return]

Ниже приведена моя функция Future:

Future<String> getLikeCount(documentID) async {
    Firestore.instance.collection('favorites').where(documentID).getDocuments().then((data){
      return 'test';
    });  
  }

Я получаю базовое представление о том, почему происходит ошибка, я предполагаю, что, поскольку внутри есть «тогда»Пока это не произойдет, функция ничего не возвращает.Как преодолеть эту проблему?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

попробуйте это без асинхронного

Future<String> getLikeCount(documentID) {
    return Firestore.instance.collection('favorites').where(documentID).getDocuments().then((data){
      return 'test';
    });  
  }
0 голосов
/ 07 декабря 2018

Используйте await вместо then, потому что ваш метод async

 final snapshot = await Firestore.instance.collection('favorites').where(documentID).getDocuments();
 return "test";

Измените это:

 _getLikes() async

На это:

 Future<String> _getLikes() async  

Потому что вы ожидаете String Future.

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