如何在Android Firebase中设置基于角色的访问控制

时间:2019-04-08 21:13:07

标签: android firebase-realtime-database

我正在使用fire base,我想将管理员和用户分开,我希望该管理员应针对特定活动,而用户应针对其他活动。 我该如何执行呢? 我已经尝试过Auth方法,但是无法正常工作。

@Override
public void onComplete(@NonNull Task<AuthResult> task) {
    progBar.setVisibility(View.GONE);
    if (task.isSuccessful()) {
        startActivity(new Intent(getApplicationContext(), Admin.class))
    } else {

    }

1 个答案:

答案 0 :(得分:0)

Firebase身份验证没有内置的管理员用户概念。如果需要此功能,则必须自己在Firebase上构建它。

执行此操作的典型方法是在该用户是管理员时向其个人资料添加custom claim。您可以使用Firebase Admin SDK做到这一点,方法很简单:

admin.auth().setCustomUserClaims(uid, {admin: true})

但是请注意,此Admin SDK仅在受信任的环境中使用,例如开发计算机,您控制的服务器或Cloud Functions。否则,任何人都可以使用上述代码将自己标记为您的应用程序的管理员。

有了适当的自定义声明,您client can read that claim(最多需要一个小时才能传播到客户端),并根据此显示正确的UI。