我在 Firestore 中有两个集合:
事件:
标题
教练编号
教练:
姓名
我用 StreamBuilder 制作了一个显示事件的小部件“EventsPage”。现在我需要这个小部件来显示每个事件的教练姓名 - 类似于教练 [event['coachId']['name']。如何在构建“EventsPage”小部件之前获取“教练”集合?
最佳答案
您可以使用嵌套的StreamBuilder
Widget nestedStreamBuilders() {
return StreamBuilder(
stream: firstStream,
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasError) return Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('Select lot');
case ConnectionState.waiting:
return Text('Awaiting bids...');
case ConnectionState.active:
case ConnectionState.done:
return StreamBuilder(
stream: secondStream,
builder: (BuildContext context, AsyncSnapshot secondSnapshot) {
if (secondSnapshot.hasError)
return Text('Error: ${secondSnapshot.error}');
switch (secondSnapshot.connectionState) {
case ConnectionState.none:
return Text('Select lot');
case ConnectionState.waiting:
return Text('Awaiting bids...');
case ConnectionState.active:
case ConnectionState.done:
return BuildYourWidgetHere();
// you can build your widget here because we have the both data
return null; // unreachable
},
);
}
return null; // unreachable
},
);
}
如果你需要FutureBuilder
,这就是例子:FutureBuilder_Example
关于flutter - 如何基于两个 Firestore 集合构建 Flutter widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55258643/