【问题标题】:get firebase data without streambuilder在没有streambuilder的情况下获取firebase数据
【发布时间】:2020-04-13 03:18:37
【问题描述】:

这就是我使用 firebase 的流生成器​​获取数据的方式

StreamBuilder<QuerySnapshot>(
            stream: Firestore.instance.collection('profile').snapshots(),
            builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
              if (!snapshot.hasData) return const Text('Loading...');
              final int messageCount = snapshot.data.documents.length;
              return ListView.builder(
                  shrinkWrap: true,
                  itemCount: messageCount,
                  itemBuilder: (_, int index) {
                    final DocumentSnapshot document = snapshot.data.documents[index];
                    return Container();}
              );
            },
          ),

我的问题是,如何将集合列表数据获取到initstate() 内的列表中 可能使用函数

List data=new List();
    @override
      void initState() {
        super.initState();

        //here
      }

【问题讨论】:

标签: flutter


【解决方案1】:

只需在有状态的类中执行以下操作即可获取数据,

bool isFetching=false;
List<String> dataList=[];

@override
void initState() {
super.initState();

getGroupsData();
}

getGroupsData() {
setState(() {
   isFetching= true;
});

databaseReference
    .collection("profile")
    .getDocuments()
    .then((QuerySnapshot snapshot) {
    snapshot.documents.forEach((f) => dataList.add[f.data["name"]));

   setState(() {
      isFetching= false;
   });
  });
}

@override
  Widget build(BuildContext context) {
    return Scaffold(
    body: Center(
    child : isFetching ?
            CircularProgressIndictaor()
            : dataList!=null && dataList.length >0 
            ? ListView.builder(
                  itemCount: snapshot.data.length,
                  itemBuilder: (BuildContext context, int index) {
                               return Text(dataList[index]);
                               }
                  )
            : Text("No Data"),
      )
    );
}

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 2018-11-15
    • 2018-06-03
    • 2021-10-28
    相关资源
    最近更新 更多