【发布时间】:2020-11-15 06:25:41
【问题描述】:
在我的应用程序中,我在整个应用程序(整个 MaterialApp 上)上使用了一个 StreamProvider,它提供了用户的状态(无论他是否登录,如果他登录,他就是 uid)。我想为整个 MaterialApp 提供来自 Firebase 的实时 UserData,因此我需要在包装整个 MaterialApp 的 MultiProvider 中使用 StreamProvider。但问题是要从Firebase获取UserData,我需要获取用户的uid,所以我不能使用用户状态和uid的StreamProviders以及提供UserData的那个。 我的代码如下所示:
MultiProvider(
providers: [
StreamProvider.value(
value: AuthService().getUser(),
),
StreamProvider<UserData>.value(
value: DatabaseRepository(uid: HERE I NEED THE UID FROM THE PREVIOUS PROVIDER).getUserDataStream(),
child: Tabs(),
catchError: (ctx, e) {
print('error: $e');
return UserData(
uid: null,
username: null,
email: null,
);
},
),
],
我应该怎么做才能从第一个 StreamProvider 获取 uid 并在第二个 StreamProvider 中使用它来获取用户数据?
【问题讨论】:
-
使用 ProxyProvider
标签: firebase flutter dart firebase-authentication provider