У меня есть StreamProvider для чтения из Firebase Firestore, который отлично работает, когда в документе есть данные, но если еще не создан документ / коллекция, я получаю сообщение об ошибке «Метод '[]' был вызван с нулевым значением». Это просто чтение числа из firestore, если есть ноль, я хочу установить по умолчанию 0.
Я пробовал использовать свойство "initialdata" SteamProvider, установив значение 0, но не уверен, правильно ли я его настроил. Я думаю, что свойство "catchError" StreamProvider может работать, но я не могу найти никаких примеров в Интернете.
См. Ниже StreamProvider, он находится под MultiProvider. Ниже находится класс PomosWeekly, он просто читает int.
StreamProvider<PomosWeekly>.value(
stream: Global.pomosWeeklyRef.documentStream2,
initialData: PomosWeekly.initialData()),
class PomosWeekly {
int count;
PomosWeekly({this.count});
factory PomosWeekly.fromMap(Map data) {
return PomosWeekly(
count: data['week'] ??
0,
);
}
factory PomosWeekly.initialData() {
return PomosWeekly(
count: 0,
);
}
}
Поток работает нормально, если в этом месте есть документы / поля, но ошибки, если документ еще не был создан, я просто хочу вернуть 0, если есть ошибка. Ошибка: «Метод '[]' был вызван с нулевым значением».
data.containsKey('week') ? data['week'] : 0
- person WiseTap   schedule 08.07.2019data
этоnull
- person Rémi Rousselet   schedule 08.07.2019