【发布时间】:2020-02-11 06:33:10
【问题描述】:
我正在从 firebase 获取数据并使用该数据制作卡片。显示用户的某些数据 从数据库中,数据加载正常,但 1 秒或更长时间出现红色错误屏幕。我希望这个消失我会告诉你我的代码。有人可以帮我看看出了什么问题。我不知道发生这种情况我做错了什么,我得到了错误
在 null 上调用了 getter 'uid'。 接收方:空 尝试调用:uid
在 null 上调用了方法“[]”。 接收方:空 尝试调用:
这是我的代码,任何帮助将不胜感激,谢谢
class CardBuilder extends StatefulWidget {
final String title;
final String text;
final IconData icon;
CardBuilder({Key key, this.title,this.text,this.icon}): super(key: key);
@override
_CardBuilderState createState() => _CardBuilderState();
}
class _CardBuilderState extends State<CardBuilder> {
FirebaseUser user;
String error;
void setUser(FirebaseUser user) {
setState(() {
this.user = user;
this.error = null;
});
}
void setError(e) {
setState(() {
this.user = null;
this.error = e.toString();
});
}
@override
void initState() {
super.initState();
FirebaseAuth.instance.currentUser().then(setUser).catchError(setError);
}
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection(UserInformation).document(user.uid).snapshots(),
builder: (context, snapshot) {
var userDocument = snapshot.data;
// User userDocument here ..........
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} : ${userDocument[widget.text]}',
style: TextStyle(
fontFamily: 'Montserrat',
fontWeight: FontWeight.w600,
color: QamaiThemeColor,
fontSize: 15
),
maxLines: 1,
maxFontSize: 15,
minFontSize: 12,
),
));
});
}
}
【问题讨论】:
标签: android firebase firebase-realtime-database flutter google-cloud-firestore