Флаттер, возвращающий тип bool из метода Future <bool> - PullRequest
0 голосов
/ 14 февраля 2019

Этот вопрос очень похож на этот , но объяснение не очень помогло для моего варианта использования.У меня есть метод типа Future, который возвращает bool, выполняющий запрос в облачное хранилище, чтобы проверить, существует ли уже введенное имя пользователя.

static Future<bool> doesNameAlreadyExist(String value, String 
name) async{
final QuerySnapshot result = await Firestore.instance
  .collection('users')
  .where(value, isEqualTo: name)
  .limit(1)
  .getDocuments();
  final List<DocumentSnapshot> documents = result.documents;
 return  documents.length == 1;

}

Когда я вызываю этот метод здесь, я получаю эту ошибку enter image description here

Есть ли способ получить тип возвратаbool из будущего

1 Ответ

0 голосов
/ 14 февраля 2019

Тип возврата, возвращаемый из doesNameAlreadyExist, равен Future<bool>, поэтому строка doesNameAlreadyExist("userName", usernameController.value) == true на самом деле Future<bool> == bool.Вам нужно дождаться или затем результата.

doesNameAlreadyExist("userName", usernameController.value).then(value => value == true)

или

(await doesNameAlreadyExist("userName", usernameController.value)) == true

Подробнее об асинхронном программировании можно прочитать здесь: Dart Futures

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