Flutter 我如何测试用户是否已登录,如果未发送到我的颤振应用程序中的其他页面?
如果用户未登录,我想导航到另一个页面。我尝试将此代码添加到initState,但在生命周期的这个阶段无法使用导航。还有别的选择吗 这在StatefulWidget或State的构造函数中也不起作用。从表面上看,我必须控制路由Flutter 我如何测试用户是否已登录,如果未发送到我的颤振应用程序中的其他页面?,flutter,Flutter,如果用户未登录,我想导航到另一个页面。我尝试将此代码添加到initState,但在生命周期的这个阶段无法使用导航。还有别的选择吗 这在StatefulWidget或State的构造函数中也不起作用。从表面上看,我必须控制路由 // Where can I apply this code. if (auth.currentUser == null) { Navigator.of(context).pushNamed(SignInPage.routeName); } 有人提出了类似的问题 虽然
// Where can I apply this code.
if (auth.currentUser == null) {
Navigator.of(context).pushNamed(SignInPage.routeName);
}
有人提出了类似的问题 虽然从技术上讲,可以通过后期帧回调实现您想要的功能,但您可能不希望在此处将新路由推送到
导航器上,因为您不希望用户能够按下登录页面上的后退按钮并返回主页。此外,您可能希望通过将用户带回登录屏幕来处理用户注销的情况
考虑在主屏幕的构建函数中使用类似的内容
Widget build() {
return auth.currentUser == null ? new SignInPage() : new HomePage();
}
如果您正在使用谷歌登录
Widget build() {
return new StreamBuilder(
stream: googleSignIn.onCurrentUserChanged,
builder: (context, user) {
return user.data != null ? new HomePage() : new SignInPage();
}
);
}
有人提出了类似的问题
虽然从技术上讲,可以通过后期帧回调实现您想要的功能,但您可能不希望在此处将新路由推送到导航器上,因为您不希望用户能够按下登录页面上的后退按钮并返回主页。此外,您可能希望通过将用户带回登录屏幕来处理用户注销的情况
考虑在主屏幕的构建函数中使用类似的内容
Widget build() {
return auth.currentUser == null ? new SignInPage() : new HomePage();
}
如果您正在使用谷歌登录
Widget build() {
return new StreamBuilder(
stream: googleSignIn.onCurrentUserChanged,
builder: (context, user) {
return user.data != null ? new HomePage() : new SignInPage();
}
);
}
谢谢你,科林。你认为firebase auth会和流生成器一起工作吗?这很好。我们目前没有将Firebase身份验证当前用户作为流公开,但我们可能可以。请随意打开一个新的问题。谢谢你,科林。你认为firebase auth会和流生成器一起工作吗?这很好。我们目前没有将Firebase身份验证当前用户作为流公开,但我们可能可以。请随意打开一个新的问题。