热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FlutterWeb身份验证。热重装时用户ID丢失

我对FlutterWeb还是陌生的,一直以来都在努力。这正是我在移动设备上对用户进行

我对Flutter Web还是陌生的,一直以来都在努力。这正是我在移动设备上对用户进行身份验证的方式,但是由于某些原因,当我在Flutter网站上使用热重装时,用户身份验证会丢失并返回null并显示CircularProgressIndicator(CPI)。

为什么要这样做?如果调用了null,则肯定会显示LoginPage()-最初加载页面时即是如此-但当我热重新加载后,它将返回null和CPI。

进一步-我添加了一条打印语句来帮助我跟踪用户呼叫-并且每次我导航到新页面时都会注意到用户ID会被打印出来并想知道为什么这样做?

我想要实现的目标:


  1. 如果snapshot.data == null,则登录页面将用户引导至登录页面

  2. 如果snapshot.data!= null,则着陆页将用户引导至首页

  3. 如果ConnectionState.waiting,则返回一个循环进度指示器

  4. 如上所述解决错误

    class Landing extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
    final auth = Provider.of(context,listen: false);
    return StreamBuilder(
    stream: auth.onAuthStateChanged,builder: (context,snapshot) {
    if (snapshot.cOnnectionState== ConnectionState.active) {
    User user = snapshot.data;
    print(user);
    return user == null ? LoginPage() : HomePage();
    } else
    return Scaffold(
    body: Center(
    child: CircularProgressIndicator(),),);
    },);
    }
    }




您正在将流传递到无状态窗口小部件中。
将无状态小部件更改为有状态小部件,这将解决您的问题。

,

我是通过F5运行程序的,而不是通过flutter运行-d chrome
通过F5运行程序可以使人们按下VScode上的热重载按钮,但重要的是,当前Flutter Web上不提供热重载。

我相信,这部分地回答了我的问题。


推荐阅读
author-avatar
手机用户2702934510
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有