Я кодирую приложение для планирования сотрудников во Flutter и использую Firestore для хранения своих данных.
У меня есть коллекция Сотрудники , в которой сохранены основные c сотрудник параметры, такие как имя, зарплата, назначение, адрес электронной почты.
Для каждого документа сотрудника у меня есть подколлекция, содержащая их недоступность. Недоступность может быть из-за того, что уже назначены на смену, болезнь, отпуск.
Для получения данных я реализовал firebase_employees_repository. В репозитории у меня есть следующая функция, которая доставляет сотрудников в режиме реального времени.
@override
Stream<List<Employee>> employees() {
return employeeCollection.snapshots().map((snapshot) {
return snapshot.documents
.map((doc) => Employee.fromEntity(EmployeeEntity.fromSnapshot(doc)))
.toList();
});
}
Теперь я хочу сделать то же самое с недоступностью.
Насколько я понимаю, список недоступности сотрудника должен сохраняться в объекте сотрудника.
Мне нужен список недоступности сотрудника, чтобы показать его статус за день / неделю / месяц. Кроме того, при создании новой смены и желании назначить сотрудника следует отображать только доступные.
Это может быть решением, но я получаю следующую ошибку:
Значение типа 'Future >>' нельзя присвоить переменной типа 'Stream >'. Попробуйте изменить тип переменной или приведите правый тип к «Stream >».
@override
Stream<List<Employee>> employees() {
return employeeCollection.snapshots().map((snapshot) {
return snapshot.documents
.map((doc) {
Stream<List<Unavailability>> unavailabilities =
employeeCollection
.document(doc.documentID)
.collection('Unavailabilities')
.snapshots().map((snapshot) {
return snapshot.documents
.map((innerDoc) => Unavailability.fromEntity(UnavailabilityEntity.fromSnapshot(innerDoc)));
}).toList()
;
return Employee.fromEntity(EmployeeEntity.fromSnapshot(doc));})
.toList();
});
}
Весь проект можно найти в Github по этой ссылке: schedulingapp