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