firebase - Flutter如何使用Future返回值作为变量

我想获得 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;
  }

我想像这样获得值(value)

final user = _fetchUserInfo(id);

但是当我尝试这样使用时

new Text(user.userName);

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

最佳答案

你可以简化代码:

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

你还需要 async/await 来获取值

void foo() async {
  final user = await _fetchUserInfo(id);
}

https://stackoverflow.com/questions/52068669/

相关文章:

Flutter - InheritedWidget - 处置

flutter - 如何在 Flutter 的文本输入字段中配置自动大写行为?

dart - 在 Flutter 中显示全屏图像 onTap

google-maps - Flutter:如何使用新的 Marker API 向 Google M

dart - 在 Flutter 中调用 showTimePicker() 时如何使用 24 小时制

flutter - 键盘向上插入内容/调整屏幕大小

flutter - 如何在 flutter 中创建没有应用栏的标签栏?

dart - Flutter - 通过滑动或按下 floatingActionButton 来展开

search - Flutter - 更改 SearchDelegate 的搜索提示文本

dart - 如何在 Flutter 中保存图像文件?使用 Image_picker 插件选择的文件