【问题标题】:How to deal with Firestore returning null values in Map如何处理 Firestore 在 Map 中返回空值
【发布时间】:2020-04-10 03:45:36
【问题描述】:

我正在使用 Flutter/Dart 制作应用,但遇到了一个烦人的问题。

当我想向一个对象添加另一个变量时,例如本例中的FoodItem对象,并且我需要将快照数据解析到dart对象中,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.
}

【问题讨论】:

  • 能否粘贴您要实际解析的数据对象?
  • @YakubPasha 完成

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

试试这个:

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

这里的问题是你不能将null 分配给bool 它会给你错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2020-10-22
    • 2014-11-26
    相关资源
    最近更新 更多