如何解决Flutter Firebase仅允许某些数据显示在列表视图构建器中
我正在尝试仅显示集合中的某些数据。在我的示例中,我只想显示列表中的数据,其中Firebase上名称中的集合等于小部件的名称。我无法解决这个问题
Expanded(
child: Container(
child: FutureBuilder(
future: getPosts(),builder: (_,snapshot){
if(snapshot.data["name"]== widget.info.name){
return ListView.builder(
itemCount:
x,itemBuilder: (_,index){
return ListTile(
title: Text(snapshot.data[index].data["name"]),);
});
解决方法
Expanded(
child: Container(
child: FutureBuilder(
future: getPosts(),builder: (_,snapshot){
return ListView.builder(
itemCount:
snapshot.data,itemBuilder: (_,index){
if(snapshot.data["name"]== widget.info.name){
return ListTile(
title:Text(snapshot.data[index].data["name"]),);
}else{
return Container();
}
})}))
);
,
一个更好的选择是在您定义的getPosts()
函数中传递小部件名称,并更新firebase查询以进行过滤。这样,因为Firebase进行了需要索引,并且将在O(len(filtered_elements))
中进行过滤,而不是O(len(all_elements))
的当前时间复杂度,所以速度要快得多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。