我想从firebase获取数据,但出现错误。
这是密码:
late final dref = FirebaseDatabase.instance.reference();
late DatabaseReference databaseReference;
showData(){
dref.once().then((snapshot){
print(snapshot.snapshot.value);
});
}
@override
void initState(){
super.initState();
databaseReference = dref;
}
child:
Container(
height:300,
child: GridView.count(
crossAxisCount: 2,
crossAxisSpacing: 12,
mainAxisSpacing: 8,
childAspectRatio: 1.30,
children: [
FirebaseAnimatedList(
shrinkWrap:true,
query: databaseReference,
itemBuilder: ( BuildContext context, DataSnapshot snapshot, Animation animation, int index){
return ListTile(
title: Text(snapshot.value!["intime"]),
subtitle : _parkingslot(name:'Floor'),);
}),
它有一个错误。"["有一个红色下划线,句子是:将此数据快照的内容作为本机类型返回。无法无条件调用方法"[]",因为接收方可以为"null"。请尝试使调用具有条件(使用"?.")或向目标("!")添加null检查。
我试着添加'!'和'?',但仍然有错误,但句子是:没有为类型"Object"定义运算符"[]"。
请帮帮忙
1条答案
按热度按时间a64a0gku1#
不能保证
snapshot.value
是Map
,因为它声明为返回Object?
,如果你 * 知道 * 它返回一个map,你必须通过强制转换结果来告诉编译器:另见: