Я пытаюсь получить список объектов из коллекции Firebase с помощью StreamProvider, и объекты извлекаются, но на долю секунды консоль выдает ошибку с красным экраном до того, как данные будут отображаться на экране. Это отображаемая ошибка ...
The getter 'length' was called on null.
Receiver: null
Tried calling: length
Это то, что у меня сейчас есть для кода ...
StreamProvider(create: (context) => _jobDb.getJobs(),),
Stream<List<Job>> getJobs() {
return _api.streamDataCollection().map((snapshot) => snapshot.documents
.map((document) => Job.fromJson(document.data))
.toList());
}
class ScrollableJobList extends StatelessWidget {
@override
Widget build(BuildContext context) {
final jobs = Provider.of<List<Job>>(context);
return ListView.builder(
itemBuilder: (context, index) {
Job job = jobs[index];
return JobListTile(
jobDetails: job,
);
},
itemCount: jobs.length,
);
}
}
Так я что-то здесь упускаю? Я попытался использовать параметр начальных данных в StreamProvider, но это не сработало. Должен ли я сделать что-то асинхронное или использовать что-то вроде FutureBuilder или возвращать что-то, когда нет данных, но как я могу это реализовать?