firebase - Flutter-StreamBuilder不会更新UI

标签 firebase flutter dart

StreamBuilder窗口小部件不会更新用户界面,当我单击ChoiceScreen时,我仍然总是看到包含两个按钮Log InSign UpSign 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/

相关文章:

flutter - Flutter Provider,使用子小部件来更新列表

Firebase存储克隆上传的文件并创建新文件而不需要下载/上传可能吗?

即使数据库未使用,Firebase 数据库带宽使用率也会快速增长

javascript - 尝试创建按日期排序的数组时,无法设置未定义错误的 "something"属性。

arrays - 在 Flutter Cards 中插入 JSON 信息?

flutter - 如何突出显示我在字符串中搜索的确切单词,而不只是字符串的开头?

firebase - 在firebase中获取所属组用户的详细信息

android - flutter 忽略指定的 Android SDK Build Tools 版本

json - 从 API 反序列化 JSON 值 - 大括号与方括号

android - 重构时无法提取对封闭类方法的引用