参数类型 '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
我在错误行所在的地方加粗了。我知道我在这里分配了一个不正确的类型,但是根据上面的错误我应该 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