我是扑朔迷离的新手,正在设计一个需要用户登录的应用程序。用户注册帐户后,将被要求在进入主屏幕之前填写一些用户信息。如果用户注册了帐户,但是下次登录时不填写其信息,则应返回此屏幕。当前,有一个流在监视用户的价值。如果该值为null,则显示登录页面,否则将显示主页。
我在实现用户信息屏幕时遇到问题。会设置一个监视Firestore文档的流,如果文档存在则返回主页,否则向用户显示信息屏幕是最好的方法,如果可以的话,我该怎么做?
这是我的代码,用于检查用户是否登录:
Widget build(BuildContext context) {
return StreamProvider<User>.value(
value: AuthService().user,
child: MaterialApp(
home: SignedIn(),
)
);
}
以及SignedIn()小部件的代码:
Widget build(BuildContext context) {
final user = Provider.of<User>(context);
if (user == null) {
return Authenticate();
} else {
return Home();
}
}
答案 0 :(得分:0)
我可能会尝试这样的事情。
StreamSubscription _subscription;
_subscription = yourStream.listen((data) {
// navigate to whatever screen depending on the data
if(data.signedIn){
Navigator.pushNamed(context, "whatever_route");
}
});