StreamBuilder
小部件不更新UI,我仍然总是看到包含两个按钮的ChoiceScreen
Log In
和Sign Up
当我点击Sign Up
时它会带我到SignUpSCreen
,LoginScreen
几乎一样,但是当我尝试以注册用户身份登录时,除非我重新运行应用程序或进行热重启,否则StreamBuilder
不会更新UI并显示ChatScreen
小部件以查看更新的 UI 。
这是我尝试过的:
StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (context, userSnap){
print('stream builder');
// a valid token
if(userSnap.hasData){
print('valid token .. user logged in');
return ChatScreen();
}
print('not yet');
return ChoiceScreen();
},
),
逻辑似乎有效,我得到:
I/flutter ( 5194): stream builder
I/flutter ( 5194): valid token .. user logged in
但它不会返回我期待的屏幕...正如我提到的,我应该做热重启才能看到它。
我试过这个,但问题仍然存在..
任何建议或意见将不胜感激。谢谢。
我认为首先你必须初始化一个变量。 例如
StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (context, userSnap){
print('stream builder');
var data = usersSnap.data;
if(data.hasData){
print('valid token .. user logged in');
return ChatScreen();
}
print('not yet');
return ChoiceScreen();
},
),