我正在用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”,所以直到发生该功能时,该函数什么都不返回。如何克服这个问题?
答案 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';
});
}