栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在使用StreamBuilder从Firebase加载数据之前,Flutter会显示一个红色错误屏幕,该如何解决?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在使用StreamBuilder从Firebase加载数据之前,Flutter会显示一个红色错误屏幕,该如何解决?

因此,在尝试了一些东西之后,我终于解决了该错误。由于此问题在线上没有任何解决方案,因此决定发布答案。至少我找不到一个。希望这可以帮助遇到同样问题的人

我首先要做的是声明一个包含user.uid值的字符串

String userid;void _getUser() async {  FirebaseUser user = await FirebaseAuth.instance.currentUser();  userid=user.uid;}

现在在卡片制造器小部件中,我摆脱了多余的东西,并在初始状态下简单地称为_getUser()方法

class _CardBuilderState extends State<CardBuilder> {  @override  void initState() {    super.initState();    _getUser();  }  @override  Widget build(BuildContext context) {    return StreamBuilder(        stream: Firestore.instance.collection(UserInformation).document(userid).snapshots(),        builder: (context, snapshot) {          if(snapshot.hasData) {   final userdocument = snapshot.data;   final title=userdocument[widget.text];   return Card(       margin: EdgeInsets.only(left: 20,right: 20,top: 20),       child: ListTile(         leading:         Icon(widget.icon, color: QamaiGreen, size: 20.0),         title: AutoSizeText('${widget.title} :   $title',style: TextStyle(    fontFamily: 'Montserrat',    fontWeight: FontWeight.w600,    color: QamaiThemeColor,    fontSize: 15),maxLines: 1,overflow: TextOverflow.ellipsis,maxFontSize: 15,minFontSize: 9,         ),       )); }          else{ return Card(     margin: EdgeInsets.only(left: 20,right: 20,top: 20),     child: ListTile(       leading:       Icon(widget.icon, color: QamaiGreen, size: 20.0),       title: AutoSizeText(         'LOADING...',         style: TextStyle(  fontFamily: 'Montserrat',  fontWeight: FontWeight.w600,  color: QamaiThemeColor,  fontSize: 15         ),         maxLines: 1,         overflow: TextOverflow.ellipsis,         maxFontSize: 15,         minFontSize: 9,       ),     ));          }        });  }}

最后的更改是添加条件检查快照是否有数据。也将特定文档字段保存在最终变量中对我而言很有帮助

final title=userdocument[widget.text];

最后,添加了else条件来模拟显示显示加载文本的同一卡界面。您可以使用CirculorIndicator,如果您希望它也对我有用,这对于界面来说看起来更加自然。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425826.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号