gpt4 book ai didi

flutter - 在没有streambuilder的情况下获取firebase数据

转载 作者:行者123 更新时间:2023-12-04 13:39:35 25 4
gpt4 key购买 nike

这就是我使用来自 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
}

最佳答案

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

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"),
)
);
}

关于flutter - 在没有streambuilder的情况下获取firebase数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59428139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com