Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在flatter中过滤Listview时如何正确使用流提供程序和where子句_Flutter_Google Cloud Firestore_Flutter Layout - Fatal编程技术网

Flutter 在flatter中过滤Listview时如何正确使用流提供程序和where子句

Flutter 在flatter中过滤Listview时如何正确使用流提供程序和where子句,flutter,google-cloud-firestore,flutter-layout,Flutter,Google Cloud Firestore,Flutter Layout,我有一个用户列表,它是以firebase(用户集合)流的形式与提供者一起获得的。我还有一个Like按钮和shortlist按钮,这些选择也存储在firebase(子集合)中,并且再次作为流从firebase获取 当加载列表时,我过滤所有用户流,以不显示已经喜欢的和入围的电影。。。。如下图所示 现在,当用户喜欢或短名单一个新用户的配置文件消失(如预期),但它是非常突然和非常快的名单重建,我如何显示一些动画之前,名单重建。。。我做错了吗 下面是我如何过滤来自全用户提供商的短名单和喜好 final

我有一个用户列表,它是以firebase(用户集合)流的形式与提供者一起获得的。我还有一个Like按钮和shortlist按钮,这些选择也存储在firebase(子集合)中,并且再次作为流从firebase获取

当加载列表时,我过滤所有用户流,以不显示已经喜欢的和入围的电影。。。。如下图所示

现在,当用户喜欢或短名单一个新用户的配置文件消失(如预期),但它是非常突然和非常快的名单重建,我如何显示一些动画之前,名单重建。。。我做错了吗

下面是我如何过滤来自全用户提供商的短名单和喜好

 final shortlist = Provider.of<List<Shortlist>>(context);
    final mylike = Provider.of<List<Liked>>(context);
    final ilike = Provider.of<List<ILike>>(context);
    var newlike = [];
    var newilike = [];
    var newshortlist = [];
    if (shortlist != null) {
      shortlist.forEach((element) {
        newshortlist.add(element.shortlisteduser);
      });
    }
    if (mylike != null) {
      mylike.forEach((element) {
        newlike.add(element.likedby);
      });
    }
    if (ilike != null) {
      ilike.forEach((element) {
        newilike.add(element.likeduser);
      });
    }

    final profilelist = Provider.of<List<CurrentUserModel>>(context);
   
    List<CurrentUserModel> newlist = [];
    if (profilelist != null) {
      newlist = profilelist
          .where((element) => !data.user.uid.contains(element.uid))
          .where((element) =>
              !data.user.uid.contains(element.uid)) //for excluding current user
          .where((element) => !newshortlist
              .contains(element.uid)) // for excluding shortlisted users
          .where((element) => !newlike.contains(element.uid))
          .where((element) => !newilike
              .contains(element.uid)) // for excluding users that liked me
          .toList();
    }
final shortlist=Provider.of(上下文);
final mylike=Provider.of(上下文);
最终ilike=提供者(上下文);
var newlike=[];
var newilike=[];
var newshortlist=[];
if(短名单!=null){
候选名单。forEach((元素){
newshortlist.add(element.shortlisteduser);
});
}
if(mylike!=null){
mylike.forEach((元素){
newlike.add(element.likedby);
});
}
如果(ilike!=null){
ilike.forEach((元素){
添加(element.likeuser);
});
}
final profilelist=Provider.of(上下文);
List newlist=[];
if(profilelist!=null){
newlist=profilelist
.where((element)=>!data.user.uid.contains(element.uid))
。其中((元素)=>
!data.user.uid.contains(element.uid))//用于排除当前用户
.where((元素)=>!newshortlist
.contains(element.uid))//用于排除入围用户
.where((element)=>!newlike.contains(element.uid))
.其中((元素)=>!newilike
.contains(element.uid))//用于排除喜欢我的用户
.toList();
}

所有这些都有效。。。我想要的是,当一个用户将新用户列入短名单时,它应该优雅地消失,显示一些动画,然后呈现新的配置文件。。。此外,短名单是一个按钮,但可以打开一个模式,然后用户可以喜欢一个配置文件

您正在寻找动画列表吗?