我有这个User类,然后有一个Firestore文档,该文档可能包含也可能不包含photoURL或其他一些值。问题是,当我尝试创建用户时,由于某些值为Null,因此会出现此异常。
我试图这样处理:
var photoURL = snapshot.data['photoURL'] ??= '';
但似乎不起作用。
谁能解释在Dart / Flutter中分别处理Null值的最佳做法?
编辑:我正在检查是否存在snapshot.exists,并且如果我创建的用户省略了我知道为Null的值,它将正确创建它。
编辑2:我发现这样尝试处理空列表时出现问题:
var favorites = snapshot.data['favorites'] ?? [''];
最佳答案
当我将其转换为Json时,似乎以错误的方式初始化了该值。
我这样处理空数组
Map<String, dynamic> toJson() => {
'favorites' : favorites ?? '',
}
什么时候应该是:
Map<String, dynamic> toJson() => {
'favorites' : favorites ?? [''],
}
因此,当我尝试为String分配一个空数组时抛出该错误。
关于flutter - 在Dart/Flutter中处理空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57926070/