【问题标题】:Make buttons disappear due to user roles (kotlin) [closed]由于用户角色而使按钮消失(kotlin)[关闭]
【发布时间】:2021-08-15 13:58:28
【问题描述】:

当用户是查看者时,是否可以让按钮在我的应用中消失?我有 3 种类型的用户(查看者、编辑者和管理员),我希望其中 3 种的布局相同,但是查看者无法访问某些按钮。是否可以使按钮消失,或者我应该制作完全相同的布局但没有按钮?谢谢!

编辑 这是firebase数据库的屏幕截图

【问题讨论】:

  • 如何定义角色?您是使用自定义声明还是将角色存储在数据库中?如果是数据库,可以分享一下数据库结构的截图吗?
  • 是的,有可能,你试过了吗?分享一些代码
  • @Dharmaraj 我在帖子中分享了截图!
  • @peprumo 我试过“override fun onCreate(savedInstanceState: Bundle?)”做“if(FirebaseAuth.getInstance().currentUser!!.uid == "Viewer"){ newDashButton.visibility =查看.GONE }"

标签: android firebase kotlin firebase-realtime-database


【解决方案1】:

角色存储在实时数据库中,因此您必须先阅读该数据库,然后根据角色隐藏按钮。现在您正在将用户的 UID 与角色“查看者”进行比较 - if(FirebaseAuth.getInstance().currentUser!!.uid == "Viewer")

val user = Firebase.auth.currentUser
val uid = user.uid

mDatabase.child("users").child(uid).child("Role").get().addOnSuccessListener {
    Log.i("firebase", "Got role ${it.value}")
    if (it.value == "Viewer") {
        newDashButton.visibility = View.GONE
    }
}.addOnFailureListener{
    Log.e("firebase", "Error getting data", it)
}

【讨论】:

  • 谢谢,我稍后再试一下再告诉你!!
猜你喜欢
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多