我构建firebase firestore和存储的方式是,一旦我在firestore中获得一个项目的uid,我就会将该id带到我的存储中,并检索一个用于显示图像的downloadUrl列表。因此,检索downloadUrl将取决于uid,其中两个是具有依赖关系的异步调用。
所有这些都是为了显示一个非常标准的卡片小部件,底部有图片和描述。
在我的FutureBuilder
future
参数中,我尝试使用Future.wait
API,但我不知道如何将从一个未来检索到的信息传递到下一个未来。
Future.wait
并非用于此目的。它适用于独立期货。如果你有两个期货,其中一个需要另一个的回报值才能开始,那么把它们都包装成一个期货:
//First future for uid
Future<String> uid() async {
return id;
}
//Second future for URL
Future<String> downloadURL(String uid) async {
//Use the uid and get the download URL future
}
//Wrapper to combine them
Future<String> combined() async {
final uid = await uid();
return downloadUrl(uid);
}
然后您可以将combined
的未来传递给您的FutureBuilder
。