函数的返回类型为'Future <string>',但不以return语句结尾

时间:2018-12-07 19:48:10

标签: firebase dart flutter google-cloud-firestore

我正在用Dart(颤振)编写Future方法。它只是在Firebase上运行查询并返回结果。但是即使在编写我的业务逻辑之前,我仍然收到一条警告消息:

  

[dart]此函数的返回类型为'Future',但是   不以return语句结尾。 [missing_return]

以下是我的未来功能:

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

我了解了为什么会发生错误的基本思想,我认为因为里面有一个“ then”,所以直到发生该功能时,该函数什么都不返回。如何克服这个问题?

2 个答案:

答案 0 :(得分:3)

使用await代替then,因为您的方法是async

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

更改此内容:

 _getLikes() async

对此:

 Future<String> _getLikes() async  

因为您期望String Future

答案 1 :(得分:2)

尝试此操作而无需异步

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