gpt4 book ai didi

firebase - 无法将“用户”分配给 FutureBuilder 中的参数类型 'Future'

转载 作者:行者123 更新时间:2023-12-05 08:16:52 26 4
gpt4 key购买 nike

我正在尝试使用 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();
});
}

我在第 3 行遇到错误 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.currentUser 返回 UserFutureBuilder 期待 future,要解决这个问题你有两个选择:

  • 使用此语法:future: Future.value(FirebaseAuth.instance.currentUser),,这会将 User 转换为 ```Future
  • 检查 FirebaseAuth.instance.currentUser 是否为 null 并返回方便的小部件。

关于firebase - 无法将“用户”分配给 FutureBuilder 中的参数类型 'Future<User>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66164073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com