请我如何设置一个字符串变量为空在firestore与扑动?



//我正在尝试做这个
字符串?userAvaterUrl = null;

//所以我可以这样做:

FutureBuilder(
future: getPicture(),
builder: (context, snapshot) {
if (snapshot.hasData || snapshot.data != null) {
return CircleAvatar(
radius: width * 0.18,
backgroundImage:
NetworkImage(snapshot.data.toString()),
);
} else {
return CircleAvatar(
radius: width * 0.18,
backgroundImage: AssetImage(
"assets/images/icons2.png"));
}
},
),

这一行:

if(snapshot.hasData || snapshot.data != null) {
...

将检查文档是否有数据。如果需要从文档中获取userAvaterUrl,则需要使用:

backgroundImage: NetworkImage(snapshot.data['userAvaterUrl'].toString()),

,但请记住,即使snapshot.hasData || snapshot.data != null,snapshot.data['userAvaterUrl']可以为空,你可能想要确保你的应用程序可以处理。因此,您可能想这样做:

if(snapshot.hasData && 
snapshot.data != null &&
snapshot.data['userAvaterUrl'] != null && 
snapshot.data['userAvaterUrl'] is String
) {
... // return avatar with the network image
} else {
... // return avatar with the asset image
}
顺便说一下,如果你使用的是带有null-safety的flutter 2,这个:
String? userAvaterUrl = null;

就是

String? userAvaterUrl; // no need to set to null

最新更新