Flutter / Firebase在null上调用了getter'length'

Posted

技术标签:

【中文标题】Flutter / Firebase在null上调用了getter\'length\'【英文标题】:Flutter/ Firebase The getter 'length' was called on nullFlutter / Firebase在null上调用了getter'length' 【发布时间】:2020-09-22 14:25:28 【问题描述】:

我使用 Firebase 作为后端开发 Flutter 应用程序,当我从屏幕移动到另一个 BottomNavigationBar 时,我正在使用 StreamProvider 将配置文件数据传递到另一个屏幕。

当我移动到另一个屏幕时,我收到此错误:

 The getter 'length' was called on null.
Receiver: null
Tried calling: length

The relevant error-causing widget was: 
  ProfileList 

这里是 ProfileList 和 ProfileTile

class ProfileList extends StatefulWidget 
  @override
  _ProfileListState createState() => _ProfileListState();


class _ProfileListState extends State<ProfileList> 
  @override
  Widget build(BuildContext context) 

final profiles = Provider.of<List<Profile>>(context);

return ListView.builder(
    itemCount: profiles.length,
    itemBuilder: (context, index)
      return ProfileTile(profile: profiles[index]);
);
  

个人资料图

class ProfileTile extends StatefulWidget 
  final Profile profile;
  ProfileTile(this.profile);
  @override
  _ProfileTileState createState() => _ProfileTileState();


class _ProfileTileState extends State<ProfileTile> 



  @override
  Widget build(BuildContext context) 
    return Padding(
      padding: EdgeInsets.only(top: 8),
      child: Card(
        margin: EdgeInsets.fromLTRB(20, 6, 20, 0),
        child: ListTile(
          leading: CircleAvatar(
            radius: 25,
            backgroundColor: Colors.green,
          ),
          title: Text(widget.profile.userName),
          subtitle: Text(widget.profile.city),
        ),
      ),
    );
  

【问题讨论】:

【参考方案1】:

看来,

itemCount:profiles.length,

在提供者向其发送数据之前呈现部分。所以配置文件变量为空。

试试这个,

itemCount: (profiles == null) ? 0 : profile.length,

【讨论】:

没错,伙计。非常感谢您的帮助

以上是关于Flutter / Firebase在null上调用了getter'length'的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云函数在 Flutter 中返回 null,因为它仍在运行

Flutter Firebase 在 null 上调用了方法“数据”

Flutter firebase 登录用户在登录后返回 NULL currentUser

Firebase 存储的图像链接返回 null - Flutter

Flutter Firebase 数据库,DataSnapshot?如何获取值和键,null 安全

在 null Flutter Firebase 上调用了 getter 'documents' [重复]