gpt4 book ai didi

flutter - 如何使用 googleSignIn future 方法中的命名路由进行导航?

转载 作者:IT王子 更新时间:2023-10-29 07:16:44 26 4
gpt4 key购买 nike

我在名为 auth.dart 的单独文件中的类 AuthService 中有 googleSignIn 方法。

// in AuthService class
/.../
Future<FirebaseUser> googleSignIn() async {
loading.add(true);

GoogleSignInAccount googleUser = await _googleSignIn.signIn();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
final FirebaseUser user = await _auth.signInWithCredential(credential);
updateUserData(user);
print("signed in " + user.displayName);

loading.add(false);
return user;
}
/.../

在登录页面 (LogInPage.dart) 中,我有一个 google 登录按钮。

// in _LogInPageState class
/.../
socialIcons(
colors: [Color(0xffcb2d3e), Color(0xffef473a)],
icon: Icon(
FontAwesomeIcons.google,
color: Colors.white,
),
onPressed: () {
final login = authService.googleSignIn();
login.then(/*navigate to home page using named routes*/);
},
),
/.../

我试图在 googleSignIn() 在 onPressed 中完成后执行下面的代码。

Navigator.of(context).pushNamedAndRemoveUntil(
'/home', (Route<dynamic> route) => false);

我该怎么做?

最佳答案

随着您的 googleSignIn 将来返回。您可以简单地使用 then 并导航到您想要的小部件。

    googleSignIn().then((FirebaseUser user) {
//Navigation code here
}).catchError((e) {
//Error if any
});

关于flutter - 如何使用 googleSignIn future 方法中的命名路由进行导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57141867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com