我有一个问题,我想MultiProvider用一些不同的提供程序创建一个,问题是其中两个是 StreamProvider,首先需要进行 Firebase 身份验证登录,然后根据用户的结果订阅 Firebase 中的 Stream登录。
因此,如果我无法StreamProvider在我的MaterialApp.
如果我在登录完成后声明这些提供程序,我会收到一条错误消息,指出提供程序不在正确的路线上,因为我需要所有应用程序周围多个路线中的数据。
这是我的代码:
class Neybor extends StatelessWidget {
@override
Widget build(BuildContext context) {
final textTheme = GoogleFonts.nunito;
return MultiProvider(
providers: [
ChangeNotifierProvider<Data>(create: (context) => new Data()),
/// Settings Stream
StreamProvider<SettingsDataModel>.value(
value: Globals.firebaseCaller.settings(),
),
/// Plans Stream
StreamProvider<PlansDataModel>.value(
value: Globals.firebaseCaller.plans(),
),
],
child: MaterialApp(
...
}
Run Code Online (Sandbox Code Playgroud)
对于Globals.firebaseCaller.settings()并且Globals.firebaseCaller.plans()我使用注册用户uid
有没有办法声明 aStreamProvider并稍后在我的代码中订阅它?
提前致谢
嗨我有这个功能:
def company_runtime(company_name):
for well in all_wells:
well_runtime = {}
if well["groupName"].lower() == company_name.lower():
well_runtime.update({well["name"]: well["efficiency"]})
return well_runtime
Run Code Online (Sandbox Code Playgroud)
如果我输入一个compay名称作为参数,我想从循环中获得一个带有"名称"和"效率"的字典.
我只获得满足该条件的all_wells列表的最后一个元素.
我做错了什么?
提前致谢