gpt4 book ai didi

firebase - 属性 'docs' 不能无条件访问,因为收到可以是 'null' Flutter

转载 作者:行者123 更新时间:2023-12-04 11:54:58 25 4
gpt4 key购买 nike

迁移到空安全后显示此错误。我现在该怎么办?

  Widget chatMessages() {
return StreamBuilder(
stream: messageStream,
builder: (context, snapshot) {
return snapshot.hasData
? ListView.builder(
padding: EdgeInsets.only(bottom: 70, top: 16),
itemCount: snapshot.data.docs.length,
reverse: true,
itemBuilder: (context, index) {
DocumentSnapshot ds = snapshot.data.docs[index];
return chatMessageTitle(
ds["message"], myUserName == ds["sendBy"]);
})
: Center(child: CircularProgressIndicator());
});
}
添加空检查 (!) 后显示此错误
              itemCount: snapshot.data!.docs.length,
reverse: true,
itemBuilder: (context, index) {
DocumentSnapshot ds = snapshot.data!.docs[index];

最佳答案

你必须投snapshot.data到它的类型。假设类型是 QuerySnapshot (将其更改为 snapshot.data 的实际类型)。

(snapshot.data! as QuerySnapshot).docs.length
我们可以指定 stream 的类型,而不是在所有位置进行类型转换。在 StreamBuilder .
StreamBuilder<QuerySnapshot>(
...
);
现在 snapshot.data推断为 QuerySnapshot并且不需要类型转换。
snapshot.data!.docs.length

关于firebase - 属性 'docs' 不能无条件访问,因为收到可以是 'null' Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66670247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com