【发布时间】:2022-06-28 20:04:56
【问题描述】:
我在迁移时使用了这段代码
StreamBuilder(
stream: FirebaseDatabase.instance
.ref()
.child('user')
.child(_userID)
.onValue,
builder: (context, snapshot) {
if (snapshot.hasData) {
_networkImageUrl = snapshot.data.snapshot.value["img"];
return Text(_networkImageUrl.toString());
} else {
return Container();
}
}),
在“dart pub upgrade --null-safety”之后出现错误:
The property 'snapshot' can't be unconditionally accessed because the receiver can be 'null'.
我尝试用“!”修复它但它不起作用,它保持同样的错误
【问题讨论】:
-
您能展示一下您是如何尝试修复它的吗?你在哪里添加
!当你添加它时错误指向其他地方吗? -
_networkImageUrl = snapshot.data!.snapshot.value["img"];在这个位置上,但我也尝试过其他所有位置:-)。它抛出错误“没有为类型'Object'定义getter'snapshot'”
-
尝试给你的快照一个值:
StreamBuilder<DatabaseEvent>(... -
谢谢你,这是决定性的提示,我已将其扩展为 var userDocument = snapshot.data as Map
; _networkImageUrl = userDocument["img"]; -
很高兴它得到了修复!
标签: flutter dart dart-null-safety