StreamBuilder
窗口小部件不会更新用户界面,当我单击ChoiceScreen
时,我仍然总是看到包含两个按钮Log In
和Sign Up
的Sign Up
,它将带我进入SignUpSCreen
,与LoginScreen
大致相同,但是当我尝试以注册用户身份登录时除非我重新运行应用程序或进行热重启以查看更新的UI,否则StreamBuilder
不会更新Ui并显示ChatScreen
小部件。
这是我尝试过的:
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
但是它并没有返回我期望的屏幕...并且我应该做热重启才能看到它,正如我提到的那样。我尝试了this,但问题仍然存在..
任何建议或意见将不胜感激。谢谢。
最佳答案
我认为首先您必须初始化一个变量。
例如,
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();
},
),
关于firebase - Flutter-StreamBuilder不会更新UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62565264/