Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 如何处理Firestore在Map中返回空值_Firebase_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

Firebase 如何处理Firestore在Map中返回空值

Firebase 如何处理Firestore在Map中返回空值,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在使用颤振/飞镖制作一个应用程序,遇到了一个恼人的问题 当我想向一个对象添加另一个变量时,比如本例中的FoodItem对象,我需要将快照数据解析到dart对象中,map Firestore返回的数据通常不包含新值,并最终告诉新对象只将新变量设为null 这会导致整个应用程序出现问题。我应该如何在不对每个被解析的元素进行空检查的情况下实现这一点?谢谢 class FoodItem with ChangeNotifier { String name; String barcode;

我正在使用颤振/飞镖制作一个应用程序,遇到了一个恼人的问题

当我想向一个对象添加另一个变量时,比如本例中的FoodItem对象,我需要将快照数据解析到dart对象中,map Firestore返回的数据通常不包含新值,并最终告诉新对象只将新变量设为null

这会导致整个应用程序出现问题。我应该如何在不对每个被解析的元素进行空检查的情况下实现这一点?谢谢

class FoodItem with ChangeNotifier {
  String name;
  String barcode;
  String servingSize;
  String calories;
  String totalFat;
  String satFat;
  String transFat;
  String cholesterol;
  String sodium;
  String totalCarbs;
  String protein;
  String fiber;
  String sugar;
  bool new_variable_that_ends_up_null = false;

...

  FoodItem.fromSnapshotData(Map<String, dynamic> data)
      : name = data['Name'],
        calories = data['Calories'],
        barcode = data['Barcode'],
        servingSize = data['Serving Size'],
        totalFat = data['Total Fat'],
        satFat = data['Saturated Fat'],
        transFat = data['Trans Fat'],
        cholesterol = data['Cholesterol'],
        sodium = data['Sodium'],
        totalCarbs = data['Total Carbs'],
        fiber = data['Fiber'],
        sugar = data['Sugar'],
        protein = data['Protein'],
        new_variable_that_ends_up_null = data['New Variable']; // This will return null when it's not already in firstore.
}
试试这个:

new_variable_that_ends_up_null = data['New Variable'] ?? false

这里的问题是,你不能将null赋值给bool,这会给你带来错误

你能粘贴你想要实际解析的数据对象吗?@YakubPasha Done