вот как я получаю данные в StreamBuilder
Stream<List<Patient>> get getAllPatients{
return FirebaseFirestore.instance.collection('Patients').snapshots().map(patientsListFromQuerySnapShot);
}
Модель пациентов
class Patient {
String id,
name,
country,
nationality,
treatment,
createdTime,
addedBy,
Map<String, dynamic> payments;
bool paymentStatus;
int paidAmount, phone;
методpatientsListFromQuerySnapShot:
List<Patient> patientsListFromQuerySnapShot(QuerySnapshot querySnapshot){
return querySnapshot.docs.map((doc) {
return Patient(
id: doc['id'],
treatment: doc['treatment'],
name: doc['name'],
country: doc['country'],
paymentStatus: doc['paymentStatus'],
phone: doc['phone'],
payments: doc['payments'],
);
}).toList();
}
закомментирование строки 'payments: doc['payments']' заставляет StreamBuilder работать и получать данные, но я не могу получить список платежей карт, который включает {дата платежа: '', оплаченная сумма: ''}
Мой StreamBuilder
return Scaffold(
drawer: AdminNavigationDrawer(),
appBar: AppBar(
title: Text('All Patients'),
),
body: StreamBuilder<List<Patient>>(
stream: FirebaseApi().getAllPatients,
builder: (context, snapshot) {
if (snapshot.hasData) {
var data = snapshot.data;
return Column(
children: [
buildSearch(),
query == ''
? buildAllPatients(data)
: filteredPatientsNum(data: data).length != 0
? buildFilteredPatients(data)
: Center(
child: Text('No Patients Found'),
),
],
);
}
return Center(child: CircularProgressIndicator());
},
),
);
опубликуйте построитель потоков, опубликуйте свои части кода.
@HuthaifaMuayyad я тоже опубликовал StreamBuilder