这个问题与this https://stackoverflow.com/questions/52477468/flutter-futurebool-vs-bool-type但解释对我的用例并没有多大帮助。我有一个 Future 类型的方法,它返回一个 bool,对 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;
}
When i call that method here i get this error
有没有办法从 Future 获取 bool 类型的返回值
返回类型返回自doesNameAlreadyExist
is Future<bool>
,
所以这条线doesNameAlreadyExist("userName", usernameController.value) == true
,
实际上是Future<bool> == bool
。
你需要等待,否则就会有结果。
doesNameAlreadyExist("userName", usernameController.value).then(value => value == true)
or
(await doesNameAlreadyExist("userName", usernameController.value)) == true
在这里阅读有关异步编程的更多信息:飞镖期货 https://www.dartlang.org/tutorials/language/futures
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)