如何解决在Tabview容器中显示来自我的Multiprovider的数据
我正在尝试在tabview容器中显示StreamProviders数据。我在main.dart中使用MultiProvider。我创建了一个database.dart,其中包含我的Future updateuserdata和QuerySnapshot中的List。在我的MultiProvider中,我已将StreamProviders值设置为DatabaseService()
我的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();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。