我正在使用 provider 包。在组件树的根部,我有一个 MultiProvider:
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider<FirebaseUser>.value(
value: FirebaseConnection.getAuthenticationStream()),
StreamProvider<User>.value(
value: FirebaseConnection.getUserStream(uid: ???))
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
initialRoute: LoginScreen.id,
onGenerateRoute: RouteGenerator.generateRoute,
),
);
}
第一个StreamProvider提供来自firebase_auth的已登录用户。 第二个StreamProvider应该为该用户提供其他信息(存储在用户集合中)。 问题是,要获取第二个流,我需要使用第一个流所提供的FirebaseUser的UID,但我不知道如何访问它。
嵌套StreamProviders没有起作用,因为在第二个流中,我只能访问构建方法的(错误)上下文(对于Provider.of(context))。
FirebaseConnection
是你自己创建的类吗?我在 Firebase 文档中找不到它。 - Abion47FutureBuilder
中调用它。一旦未来完成并返回流,请将其传递给提供程序。 - Abion47