我正在尝试从Firestore数据库获取UserData。我目前正在使用Steam Provider进行操作,该Steam Provider内是我的主页,我希望能够使用主页中firestore中的数据。
在此处显示主页代码:
return StreamProvider<List<usuariodata>>.value(
value: DatabaseService().dadosusuarios,
child: Scaffold(
...
这里是我如何从另一个文件中收集内容:
class DatabaseService {
//Colection reference
final String uid;
DatabaseService({this.uid});
final CollectionReference userdata =
Firestore.instance.collection('dadosusuarios');
//dados usuario snapshot
List<usuariodata> _usuariosListFromSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc){
return usuariodata(
name: doc.data['name'] ?? '',
sensores: doc.data['sensores'] ?? '',
led1: doc.data['led1'] ?? false,
quantidade: doc.data['quantidade'] ?? 0,
);
}).toList();
}
Stream<List<usuariodata>> get dadosusuarios {
return userdata.snapshots()
.map(_usuariosListFromSnapshot);
}
}
我可以从另一个页面调用它,
final data = Provider.of<<List<usuariodata>>(context);
data.forEach((data) {
print(data.name);
...
)};
但是由于应该在其他页面中使用它,所以我怎么能从我的firestore数据库中收集信息并将其存储到可用变量中,然后再显示主页。
答案 0 :(得分:0)
我建议直接使用Firestore在流中实时获取数据。无需提供程序。例如
return Center(
child : StreamBuilder(
stream : Firestore.instance.collection('dadosusuarios').snapshots(),
builder : ((context,data){
return //Your Widget
}),
....