【问题标题】:Flutter returning a bool type from a Future<bool> MethodFlutter 从 Future<bool> 方法返回 bool 类型
【发布时间】:2019-07-08 12:53:15
【问题描述】:

这个问题与this 非常相似,但解释对我的用例没有太大帮助。我有一个 Future 类型的方法,它返回一个 bool,执行对云 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;

}

当我在这里调用该方法时,我收到此错误

有没有办法从 Future 获取 bool 的返回类型

【问题讨论】:

    标签: dart flutter google-cloud-firestore


    【解决方案1】:

    doesNameAlreadyExist返回的返回类型为Future&lt;bool&gt;, 所以doesNameAlreadyExist("userName", usernameController.value) == true这一行, 实际上是Future&lt;bool&gt; == bool。 你需要等待,否则结果。

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

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

    在此处阅读有关异步编程的更多信息:Dart Futures

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2021-10-14
      • 2019-12-05
      • 1970-01-01
      相关资源
      最近更新 更多