我有这个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/

10-12 04:09