参数类型 'StreamSubscription<User?>' 无法分配给参数类型 'Stream<String>?'

The argument type 'StreamSubscription<User?>' can't be assigned to the parameter type 'Stream<String>?'

我在错误行所在的地方加粗了。我知道我在这里分配了一个不正确的类型,但是根据上面的错误我应该 return 什么类型?提前谢谢你。

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final BaseAuth auth = Provider.of(context).auth;
    return StreamBuilder<String>(
      stream: **auth.authStateChanges**,
      builder: (context, AsyncSnapshot<String> snapshot) {
        if (snapshot.connectionState == ConnectionState.active) {
          final bool loggedIn = snapshot.hasData;
          if (loggedIn == true) {
            return HomePage();
          } else {
            return LoginPage();
          }
        }
        return CircularProgressIndicator();
      },
    );
  }
}

你需要return:

StreamBuilder<User?>(...

而不是:

StreamBuilder<String>

并将构建器更改为用户类型,如下所示:

builder: (context, AsyncSnapshot<User> snapshot) {...

并且:

final AuthService auth = Provider.of(context).auth;

文档:https://pub.dev/documentation/firebase_auth/latest/firebase_auth/FirebaseAuth/authStateChanges.html