【问题标题】:Different screens for different roles or conditional rendering of widget based on roles in one screen? [closed]不同角色的不同屏幕或基于角色的小部件在一个屏幕中的条件渲染? [关闭]
【发布时间】:2021-03-13 20:01:21
【问题描述】:

我在 Flutter + Firebase 中开发了我的第一个“复杂”应用程序,其中应用程序中有 4 个不同的角色。来宾用户、Plus 用户、Pro 用户和 Admin 用户。不同的用户组可以访问应用程序中的不同功能(显示不同的小部件等)。

我看到了两种可能的实现方式。

1:不同用户组的不同屏幕/视图。 Home_Guest、Home_Plus、Home_Pro 和 Home_Admin 并根据用户滚动加载屏幕(应用程序中有超过 10 个不同的屏幕/视图,所以如果我走这条路线,它将是不同的 40 多个屏幕/视图)。

2:根据用户组加载不同小部件的一个屏幕/视图。 Home:如果Guest加载A,如果Plus加载A+B,如果Pro加载A+B+C,如果Admin加载A+B+C+D等......

优点/缺点:

1:更多代码和一些代码重复

2:代码少,代码不重复,逻辑更复杂

我知道不同的开发人员可能有不同的意见,但我试图找到关于该主题的文章、书籍等,但一无所获。 我要问的是,我是否可以遵循一种(或多种)“最佳实践”或“众所周知的”模式?还有任何描述这种模式的书籍、文章等?

【问题讨论】:

  • 我的问题可以用事实来回答!是否有一种(或多种)“最佳实践”或“众所周知的”设计模式来解决我的问题??

标签: flutter design-patterns


【解决方案1】:

如果这些屏幕有很多共同的 UI 元素,我会选择第二个选项 您可以创建 Map 将用户组映射到您可以在 UI 中轻松调用的小部件,但也要注意您是否打算将其作为一个严肃的应用程序发布

您必须实施 firebase 安全规则才能真正使这个安全、简单的 UI 逻辑可以轻松进行逆向工程

【讨论】:

  • 带地图的好建议,它解决了很多复杂性!我对后端有很好的了解,一切都被安全滚轮锁定或在云功能背后自定义声明等。希望该应用程序是独一无二的并且足以启动!
猜你喜欢
  • 2020-11-29
  • 2021-10-30
  • 1970-01-01
  • 2020-10-22
  • 2021-02-07
  • 1970-01-01
  • 2016-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多