我如何测试用户是否已登录以及是否路由到我的 Flutter 应用程序中的另一个页面?
How can I test if the user is signed in and if not route to another page in my Flutter app?
如果用户未登录,我想导航到另一个页面。我尝试将此代码添加到 initState,但在生命周期的这个阶段我无法使用导航。还有其他选择吗?
这在 StatefulWidget 或 State 的构造函数中也不起作用。从看起来我必须控制路由。
// Where can I apply this code.
if (auth.currentUser == null) {
Navigator.of(context).pushNamed(SignInPage.routeName);
}
有人问了类似的问题 。
虽然技术上可以用 post 帧回调来做你想做的事,但你可能不想在这里将新路由推到 Navigator
上,因为你不希望用户能够按登录页面上的后退按钮并返回主页。此外,您可能希望通过将用户带回登录屏幕来处理用户注销的情况。
考虑在主屏幕的构建功能中使用类似的东西。
Widget build() {
return auth.currentUser == null ? new SignInPage() : new HomePage();
}
如果您正在使用 Google 登录
Widget build() {
return new StreamBuilder(
stream: googleSignIn.onCurrentUserChanged,
builder: (context, user) {
return user.data != null ? new HomePage() : new SignInPage();
}
);
}
如果用户未登录,我想导航到另一个页面。我尝试将此代码添加到 initState,但在生命周期的这个阶段我无法使用导航。还有其他选择吗?
这在 StatefulWidget 或 State 的构造函数中也不起作用。从看起来我必须控制路由。
// Where can I apply this code.
if (auth.currentUser == null) {
Navigator.of(context).pushNamed(SignInPage.routeName);
}
有人问了类似的问题
虽然技术上可以用 post 帧回调来做你想做的事,但你可能不想在这里将新路由推到 Navigator
上,因为你不希望用户能够按登录页面上的后退按钮并返回主页。此外,您可能希望通过将用户带回登录屏幕来处理用户注销的情况。
考虑在主屏幕的构建功能中使用类似的东西。
Widget build() {
return auth.currentUser == null ? new SignInPage() : new HomePage();
}
如果您正在使用 Google 登录
Widget build() {
return new StreamBuilder(
stream: googleSignIn.onCurrentUserChanged,
builder: (context, user) {
return user.data != null ? new HomePage() : new SignInPage();
}
);
}