firebase - 更改页面 Flutter 时丢失 GoogleSignInAccount
问题描述
我希望当我打开此页面时,显示 Google 用户信息,如果未登录,则显示登录按钮。当我这样做时它正在工作。但是每次我更改页面(我正在使用bottomNavigationBar btw)时,都会出现按钮而不是信息。
这是鳕鱼:
class _AccountScreenState extends State<AccountScreen> {
bool _isLoggedIn = AuthGoogle().isSigningIn;
GoogleSignInAccount _userObj;
GoogleSignIn _googleSignIn = GoogleSignIn();
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context, snapshot) {
return Column(
children: [
SizedBox(
height: 50,
),
(_userObj != null)
? Center(
child: Column(
children: [
CircleAvatar(
radius: 50,
backgroundImage: NetworkImage(_userObj.photoUrl)),
Text("Bem vindo de volta " + _userObj.displayName),
Text(_userObj.email),
],
),
)
: Center(
child: ElevatedButton(
child: Text("Login with Google"),
onPressed: () {
_googleSignIn.signIn().then((userData) {
setState(() {
_isLoggedIn = true;
AuthGoogle().isSigningIn = true;
_userObj = userData;
});
}).catchError((e) {
print(e);
});
},
),
),
TextButton(
onPressed: () {
_googleSignIn.signOut().then((value) {
setState(() {
_isLoggedIn = false;
AuthGoogle().isSigningIn = false;
});
}).catchError((e) {});
},
child: Text("Logout"))
],
);
},
);}
}
解决方案
推荐阅读
- c# - Xamarin Forms - 重复的工具栏出现在页面问题上
- python-3.x - PyArrow OSError: [WinError 193] %1 不是有效的 win32 应用程序
- here-api - 这里 API - 不需要参数的自动建议(在文档中)
- python - 为什么数据在 t-SNE 可视化中显示为线/圆而不是“球”?
- typescript - TouchableOpacity onPress() 只有一个按钮在工作
- c - 返回数组中的最大数
- unit-testing - Mockk:无法为方法调用指定答案
- jquery - 在不使用 Cookie 的情况下,使用 JQuery 下载带有加载器或进度表的 Excel 或其他二进制文件
- loops - 如何一次获取字符串的 4 个字符向后迭代
- apache-spark-sql - Databricks“外部输入需要EOF”错误