Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 是否使用streambuilder随机/洗牌数据?颤振_Flutter_Random_Google Cloud Firestore_Shuffle - Fatal编程技术网

Flutter 是否使用streambuilder随机/洗牌数据?颤振

Flutter 是否使用streambuilder随机/洗牌数据?颤振,flutter,random,google-cloud-firestore,shuffle,Flutter,Random,Google Cloud Firestore,Shuffle,有没有办法对来自firestore的数据进行随机分组?我正在使用streambuilder和StaggedView.countbuilder。我找不到任何关于它的文档!现在,数据以最后的注册顺序进入流。 有人能帮忙吗? 向大家问好 这是我的密码 StreamBuilder( stream: Firestore.instance.collection('users').where('myCity', isEqualTo: city).snapshots(), builder: (conte

有没有办法对来自firestore的数据进行随机分组?我正在使用streambuilder和StaggedView.countbuilder。我找不到任何关于它的文档!现在,数据以最后的注册顺序进入流。 有人能帮忙吗? 向大家问好

这是我的密码

StreamBuilder(
  stream: Firestore.instance.collection('users').where('myCity', isEqualTo: city).snapshots(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return Text('Loading');
    return  Container(
      child: StaggeredGridView.countBuilder(
        crossAxisCount: 2,
          crossAxisSpacing: 12,
          mainAxisSpacing: 12,
          itemCount: snapshot.data.documents.length,
          itemBuilder: (BuildContext context, int index) {
            User user = User.fromDoc(snapshot.data
                .documents[index]);
            return GestureDetector(
              child: Container(
                decoration: BoxDecoration(
                    color: Colors.transparent,
                borderRadius: BorderRadius.all(Radius.circular(12))

              ),
                child: ClipRRect(
                  borderRadius: BorderRadius.circular(21),
                  child: Image.network(user.profileImageUrl,fit: BoxFit.cover,)
                ),
            )
            );
            },
        staggeredTileBuilder: (index){
          return StaggeredTile.count(0, index.isEven? 1.2 :1.4);
      },
          ),
    );
  },
);
您可以使用
List
类的()方法 这将在流每次发出新值时进行洗牌

class MyApp extends StatelessWidget {
  @override
  Widget build(context) {
    return MaterialApp(
      home: Scaffold(
        body: StreamBuilder(
          stream: Firestore.instance
              .collection('users')
              .where('myCity', isEqualTo: city)
              .snapshots(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) return Text('Loading');
            final docs = snapshot.data.documents..shuffle();
            return Container(
              child: StaggeredGridView.countBuilder(
                crossAxisCount: 2,
                crossAxisSpacing: 12,
                mainAxisSpacing: 12,
                itemCount: docs.length,
                itemBuilder: (BuildContext context, int index) {
                  User user = User.fromDoc(docs[index]);
                  return GestureDetector(
                    child: Container(
                      decoration: BoxDecoration(
                          color: Colors.transparent,
                          borderRadius: BorderRadius.all(Radius.circular(12))),
                      child: ClipRRect(
                        borderRadius: BorderRadius.circular(21),
                        child: Image.network(
                          user.profileImageUrl,
                          fit: BoxFit.cover,
                        ),
                      ),
                    ),
                  );
                },
                staggeredTileBuilder: (index) {
                  return StaggeredTile.count(0, index.isEven ? 1.2 : 1.4);
                },
              ),
            );
          },
        ),
      ),
    );
  }
}
您可以使用
List
类的()方法 这将在流每次发出新值时进行洗牌

class MyApp extends StatelessWidget {
  @override
  Widget build(context) {
    return MaterialApp(
      home: Scaffold(
        body: StreamBuilder(
          stream: Firestore.instance
              .collection('users')
              .where('myCity', isEqualTo: city)
              .snapshots(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) return Text('Loading');
            final docs = snapshot.data.documents..shuffle();
            return Container(
              child: StaggeredGridView.countBuilder(
                crossAxisCount: 2,
                crossAxisSpacing: 12,
                mainAxisSpacing: 12,
                itemCount: docs.length,
                itemBuilder: (BuildContext context, int index) {
                  User user = User.fromDoc(docs[index]);
                  return GestureDetector(
                    child: Container(
                      decoration: BoxDecoration(
                          color: Colors.transparent,
                          borderRadius: BorderRadius.all(Radius.circular(12))),
                      child: ClipRRect(
                        borderRadius: BorderRadius.circular(21),
                        child: Image.network(
                          user.profileImageUrl,
                          fit: BoxFit.cover,
                        ),
                      ),
                    ),
                  );
                },
                staggeredTileBuilder: (index) {
                  return StaggeredTile.count(0, index.isEven ? 1.2 : 1.4);
                },
              ),
            );
          },
        ),
      ),
    );
  }
}

“来自firestore的随机数据”这是什么意思?如果您想从Firestore检索随机文档,请看这里:“随机数据来自Firestore”这是什么意思?如果要从Firestore检索随机文档,请查看以下内容: