Flutter从Future <bool>方法返回布尔类型

时间:2019-02-14 13:17:08

标签: dart flutter google-cloud-firestore

这个问题与this非常相似,但是对于我的用例来说,解释并没有太大帮助。我有一个类型为Future的方法,该方法返回一个布尔值来对Cloud Firestore执行查询,以检查用户输入的用户名是否已存在。

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

有没有办法从期货中获得布尔型的返回类型

1 个答案:

答案 0 :(得分:2)

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