在主页中从Firestore用户获取数据

时间:2020-05-10 07:56:38

标签: flutter google-cloud-firestore

我正在尝试从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数据库中收集信息并将其存储到可用变量中,然后再显示主页。

1 个答案:

答案 0 :(得分:0)

我建议直接使用Firestore在流中实时获取数据。无需提供程序。例如

return Center(
         child : StreamBuilder(
                  stream : Firestore.instance.collection('dadosusuarios').snapshots(),
                  builder : ((context,data){
                 return //Your Widget 
                 }),
                ....