У меня есть чтение 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, если есть ошибка.Ошибка: «Метод '[]' был вызван с нулевым значением."