Two*_*San 7 dart firebase flutter google-cloud-firestore
我想得到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;
}
Run Code Online (Sandbox Code Playgroud)
我希望得到这样的价值
final user = _fetchUserInfo(id);
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用这样的时候
new Text(user.userName);
Run Code Online (Sandbox Code Playgroud)
Dart不承认是User班级.它说dynamic.
我如何获得返回值并使用它?
我首先做错了吗?任何帮助表示赞赏!
Gün*_*uer 17
您可以简化代码:
Future<User> _fetchUserInfo(String id) async {
User fetchedUser;
var snapshot = await Firestore.instance
.collection('user')
.document(id)
.get();
return User(snapshot);
}
Run Code Online (Sandbox Code Playgroud)
你还需要async/await来获取值
void foo() async {
final user = await _fetchUserInfo(id);
}
Run Code Online (Sandbox Code Playgroud)
var username;
dbHelper.getUsers().then((user) {
username = user.getName;
});
Run Code Online (Sandbox Code Playgroud)
此函数返回未来值
dbHelper.getUsers()
Run Code Online (Sandbox Code Playgroud)
它是这样写的
getUsers() async { .... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14842 次 |
| 最近记录: |