如何解决Flutter无法导航至Google登录的其他屏幕?
我已经创建了一个登录屏幕,在该屏幕上我可以从Firebase使用google登录。登录工作正常,因为我可以访问uid并在firebase上发布数据,但点击登录按钮后无法导航到主屏幕,它仅使用google登录并停留在登录屏幕上。
Future<FirebaseUser> signInWithGoogle() async {
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
// Step 2
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential cred= GoogleAuthProvider.getCredential(idToken: googleAuth.idToken,accessToken: googleAuth.accessToken);
FirebaseUser user = (await _auth.signInWithCredential(cred)).user;
return user;
}
onTap:() async {
await _auth.signInWithGoogle();
Navigator.of(context).pushNamed('/homescreen');
},
上面是我的
GoogleAuth
函数和onTap
属性。
解决方法
最好不要在async
函数中使用onTap()
。
定义另一个函数并执行类似的操作。
void handleLogin() async {
FirebaseUser user = await signInWithGoogle();
// Here signInWithGoogle() is your defined function!
if(user != null){
Navigator.of(context).pushNamed('/homescreen');
}else{
// Something Wrong!
}
}
在您的onTap()
上调用此新功能
onTap: () {
handleLogin();
}
请注意,
async
中没有onTap()
试试吧,这可能会解决您的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。