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

标签 firebase flutter firebase-authentication

我正在尝试使用 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/

相关文章:

android - flutter ,打开键盘时如何无缝 ScrollView

javascript - firebase.initializeApp 回调/ promise ?

reactjs - 尝试 React + Firebase Googel Auth 时出现 TypeError : this. addScope 不是函数

javascript - 'string' 类型的参数不可分配给 'AbstractControl' 类型的参数。 Angular react 形式

firebase - 如何在 Firestore 中处理自定义用户排序

flutter - 有什么方法可以将 String 转换为 Dart 功能代码吗?

firebase - 使用特定路径在 Firebase 托管上部署网站

java - 从 console.firebase.google.com 取消用户后,用户身份验证仍然存在

ios - 当我尝试引用 firebase 数据库时应用程序崩溃

swift - 有没有办法只为一个集合启用离线持久性,而不是其他集合?