Flutter 是否使用streambuilder随机/洗牌数据?颤振
有没有办法对来自firestore的数据进行随机分组?我正在使用streambuilder和StaggedView.countbuilder。我找不到任何关于它的文档!现在,数据以最后的注册顺序进入流。 有人能帮忙吗? 向大家问好 这是我的密码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
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检索随机文档,请查看以下内容: