Как бороться с Firestore, возвращающим нулевые значения на карте - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю приложение, используя 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.
}

1 Ответ

1 голос
/ 11 апреля 2020

попробуйте это:

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

проблема в том, что вы не можете присвоить null для bool, это даст вам ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...