我正在尝试在tabview容器中显示StreamProviders数据。我在main.dart中使用MultiProvider。我创建了一个database.dart,其中包含我的Future updateuserdata和QuerySnapshot中的List。在我的MultiProvider中,我已将StreamProviders值设置为DatabaseService()<-这是我的“ this.uid”和get命令。我正在尝试显示此信息,但出现很多错误。如果有人可以帮助我,将不胜感激。
我的Main.darts MultiProvider:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
Provider<AuthenticationService>(
create: (_) => AuthenticationService(FirebaseAuth.instance),
),
StreamProvider(
create: (context)=> context.read<AuthenticationService>().authStateChanged,
),
StreamProvider<List<ALLegemidler>>.value(
value: DatabaseService().legemidlerakutt, child: akuttelegemidlerliste()),
],
child: MaterialApp(
home: AuthenticationWrapper(),
routes: {
'/signinpage': (context) => SignInPage(),
'/signuppage': (context) => SignUpPage(),
'/home': (context) => HomePage(),
'/barneanestesi': (context) => BarneAnestesi(),
'/ahlr_barn': (context) => Ahlr_Barn(),
}
),
);
}
}
我的Model.dart
class ALLegemidler {
final String navn;
final String dose;
final String styrke;
final String mengde;
final String hastighet;
ALLegemidler({this.navn, this.dose, this.hastighet, this.mengde, this.styrke,});
}
我的数据库。dart
class DatabaseService {
final String uid;
DatabaseService ({this.uid});
// collection reference
final CollectionReference akuttelegemidlerCollection = FirebaseFirestore.instance.collection('legemidlerakutt');
//oppdater akuttlegemiddelliste
Future updateUserDataALegemidler(String alnavn, String aldose, String alstyrke, String almengde, String alhastighet) async {
return await akuttelegemidlerCollection.doc(uid).set({
'Navn': alnavn,
'Dose': aldose,
'Styrke': alstyrke,
'Mengde': almengde,
'Hastighet': alhastighet,
});
}
// Liste fra akutte legemiddellisten
List<ALLegemidler> _ALLegemidlerFromSnapshot(QuerySnapshot snapshot) {
return snapshot.docs.map((doc){
return ALLegemidler(
navn: doc.data()['Navn'] ?? '',
styrke: doc.data()['Styrke'] ?? '',
dose: doc.data()['Dose'] ?? '',
mengde: doc.data()['Mengde'] ?? '',
hastighet: doc.data()['Hastighet'] ?? '',
);
});
}
//get Akutte legemidler collection
Stream<List<ALLegemidler>> get legemidlerakutt{
return akuttelegemidlerCollection.snapshots()
.map(_ALLegemidlerFromSnapshot);
}
}
还有我的databaselist.dart
class ALLegemidlerListe extends StatefulWidget {
@override
_ALLegemidlerListeState createState() => _ALLegemidlerListeState();
}
class _ALLegemidlerListeState extends State<ALLegemidlerListe> {
@override
Widget build(BuildContext context) {
final ALLegemidler = Provider.of<QuerySnapshot>(context);
for (var doc in ALLegemidler.docs) {
print(doc.data);
}
return Container();
}
}