当我使用onAuthStateChanged
时,我的GoogleSignIn
的StreamBuilder可以正常工作。但是,当我仅使用Firebase SignInWithEmailAndPassword
时,它可以正常登录,正如我在控制台中看到的那样,但是我的StreamBuilder
并没有更新我的应用程序页面。
StreamBuilder处理身份验证的代码。
StreamBuilder<FirebaseUser>(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (BuildContext context, snapshot) {
if (!snapshot.hasData) {
return StartScreen();
} else {
return LocationPermissionStatus().handlePermission();
}
},
);
“我的电子邮件登录”代码(这可以正确登录,但streambuilder不能在authstatechanged上工作)
_firebaseAuth.signInWithEmailAndPassword(email: email.trim(), password: password);
我的GOOGLE登录代码(此代码可以正确登录,并且StreamBuilder
可以在authStateChanged上正常运行)
final GoogleSignInAccount googleSignInAccount = await _googlSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleSignInAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
idToken: googleAuth.idToken, accessToken: googleAuth.accessToken);
_firebaseAuth.signInWithCredential(credential);