将FutureBuilder用于一个未来取决于另一个未来的结果



我构建firebase firestore和存储的方式是,一旦我在firestore中获得一个项目的uid,我就会将该id带到我的存储中,并检索一个用于显示图像的downloadUrl列表。因此,检索downloadUrl将取决于uid,其中两个是具有依赖关系的异步调用。

所有这些都是为了显示一个非常标准的卡片小部件,底部有图片和描述。

在我的FutureBuilderfuture参数中,我尝试使用Future.waitAPI,但我不知道如何将从一个未来检索到的信息传递到下一个未来。

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

最新更新