一尘不染

颤抖如何像变量一样使用Future返回值

flutter

我想获取Future返回值并像变量一样使用它。我有这个Future功能

  Future<User> _fetchUserInfo(String id) async {
    User fetchedUser;
    await Firestore.instance
        .collection('user')
        .document(id)
        .get()
        .then((snapshot) {
      final User user = User(snapshot);
      fetchedUser = user;
    });
    return fetchedUser;
  }

我想像这样获得价值

final user = _fetchUserInfo(id);

但是当我试图这样使用

new Text(user.userName);

Dart无法识别为User班级。它说dynamic
我如何获得返回值并使用它?
首先我做错了吗?任何帮助表示赞赏!


阅读 245

收藏
2020-08-13

共1个答案

一尘不染

您可以简化代码:

Future<User> _fetchUserInfo(String id) async {
    User fetchedUser;
    var snapshot = await Firestore.instance
        .collection('user')
        .document(id)
        .get();
    return User(snapshot);
  }

您还需要异步/等待来获取值

void foo() async {
  final user = await _fetchUserInfo(id);
}
2020-08-13