我有一个CurrentUser
类,它接受一个uid
。当我的应用检查用户的身份验证状态时,我初始化此提供程序。我希望能够watch
或read
这个供应商,而不必通过uid
每次。
另外,我正在寻找一种方法,如果我没有传递uid
,构建方法不必获取数据,而只是使用其当前状态。
这一切有可能吗
@Riverpod(keepAlive: true)
class CurrentUser extends _$CurrentUser {
@override
Future<User> build({required String uid}) async {
return await ref.read(firestoreRepoProvider).getUser(uid: uid);
}
//...other methods to mutate state
}
1条答案
按热度按时间jq6vz3qz1#
您可以使用
StateProvider<User?>
存储当前用户。如果没有用户连接,则值为null
。下面是一个如何使用它的例子:
我创建了一个currentUserProvider,可以在你的小部件中查看。我添加了两个按钮,假登录和注销,告诉你如何更新当前用户。