我试图在我的应用程序上显示一个设置菜单,该菜单将根据用户是否登录而显示项目。
我正在使用Firebase进行身份验证并使用Stream,然后将其分配给本地实例。
然后,想法是将其包装在Stream Provider中,并检查用户是否为null,然后根据该用户创建具有不同选项的List。然后,该列表将作为弹出设置菜单的一部分。
我遇到的问题是将身份验证方面与对List的评估结合在一起,从而能够访问经过身份验证的用户。
我无法返回列表,因为它是一个小部件。我无法删除小部件(我不认为),因为那样我就没有上下文可以构建/使用。如果我在同一Dart File中创建一个单独的类,那么我将无法查看/访问需要评估为的用户此类未声明。
这是我尝试的一些代码,有望显示出我正在尝试实现的目标。
class Wrapper extends StatelessWidget {
@override
Widget build(BuildContext context) {
final user = Provider.of<User>(context);
List<String> settingsOptions;
if (user == null) {
// User is not logged in
settingsOptions = <String>[
Constants.register,
Constants.signIn,
];
} else {
// User is logged in and authenticated
settingsOptions = <String>[
Constants.uploadPic,
];
}
}
}