'User'不能分配给FutureBuilder中的参数类型'Future<User>'
我正在尝试确定用户是否使用 FirebaseAuth.instance.currentUser 登录(Flutter Firebase),然后返回 LoginScreen 或 Dashboard,但出现错误。我试图根据 FirebaseFlutter 的说明编写代码,但那些似乎已被弃用......
Widget build(BuildContext context) {
return FutureBuilder<User>(
future: FirebaseAuth.instance.currentUser,
builder: (BuildContext context, AsyncSnapshot<User> snapshot) {
if (snapshot.hasData) {
User user = snapshot.data;
/// is because there is user already logged
return Dashboard();
}
/// other way there is no user logged.
return LoginScreen();
});
}
我在future: ...代表The argument type 'User' can't be assigned to the parameter type 'Future<User>'. 请有人向我解释我应该怎么做,我做错了什么?我试图在函数中传递它,()=>但它仍然不起作用......目前使用 firebase_auth: 0.20 和 firebase_core 0.7
回答
这是因为FirebaseAuth.instance.currentUserreturnUser和FutureBuilderexpect future,要解决此问题,您有两个选择:
- 使用以下语法 :
future: Future.value(FirebaseAuth.instance.currentUser),,这将转换User为 ```Future - 检查是否
FirebaseAuth.instance.currentUser是null并返回方便的小部件。
THE END
二维码