在流构建器上的颤动网络中出现意外的空错误,在Android上运行正常 [英] unexpected null error coming in flutter web on stream builder ,working fine on android

查看:0
本文介绍了在流构建器上的颤动网络中出现意外的空错误,在Android上运行正常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的个人资料页面中有以下代码。 代码在Android上运行得非常好,但在网络上,当我打开我的个人资料页面时,它显示

意外空值错误

调试控制台中指向错误的代码:

return Container(
  
  child: StreamBuilder<DocumentSnapshot>(
    stream: FirebaseFirestore.instance
        .collection('users')
        .doc(profileId)
        .snapshots(),
    builder: (context,snapshot) {
      if (!snapshot.hasData) {
        return Container(
            alignment: FractionalOffset.center,
            child: CircularProgressIndicator());
      }

      User user = User.fromDocument(snapshot.data!);

      return Scaffold(
        //all body widgets
      );

调试控制台显示

The following TypeErrorImpl was thrown building StreamBuilder<DocumentSnapshot<Object?>>(dirty, state: _StreamBuilderBaseState<DocumentSnapshot<Object?>, AsyncSnapshot<DocumentSnapshot<Object?>>>#556d2):
Unexpected null value.

The relevant error-causing widget was
StreamBuilder<DocumentSnapshot<Object?>>
lib/profile_page.dart:615

推荐答案

我觉得您应该把这一行User user = User.fromDocument(snapshot.data!);放到else中,如下所示:

if (!snapshot.hasData) { // if snapshot has no data this is going to run
  return Container(
    alignment: FractionalOffset.center,
    child: CircularProgressIndicator());
}
else{ // if snapshot has data this is going to run
  User user = User.fromDocument(snapshot.data!);
}

这篇关于在流构建器上的颤动网络中出现意外的空错误,在Android上运行正常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆