无法将参数类型“Stream<User?>”分配给参数类型“Stream<User>?”

时间:2021-06-20 01:20:11

标签: android firebase flutter firebase-authentication

我想通过 Streams 使用 firebase 身份验证,但是我在行 stream: FirebaseAuth.instance.authStateChanges(), 上收到上述错误。我试过 onAuthStateChange() 也不起作用。

class LandingPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Widget build(BuildContext context) {
      return StreamBuilder<User>(
        stream: FirebaseAuth.instance.authStateChanges(),
        builder: (BuildContext context, AsyncSnapshot<User> snapshot) {
          if(snapshot.hasData) {
            print("data exists");
            return First();
          }
          else {
            return SignIn();
          }
        },
      );
    }
  }
}

1 个答案:

答案 0 :(得分:1)

如果您查看 authStateChanges 的文档,您会看到它返回一个 Stream<User?>。所以你的 StreamBuilder 也应该是 User? 而不是 User:

return StreamBuilder<User?>(
  ...