Flutter:Dart:根据经过身份验证的用户弹出菜单项

时间:2020-08-16 15:39:42

标签: flutter dart firebase-authentication

我试图在我的应用程序上显示一个设置菜单,该菜单将根据用户是否登录而显示项目。

我正在使用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,
      ];
    }
  }
}

0 个答案:

没有答案