Firebase管理员和用户帐户

时间:2017-10-14 15:54:32

标签: android firebase firebase-realtime-database firebase-authentication

我正在使用firebase构建Android应用。简单用户将登录并向数据库添加数据。用户只能看到自己的数据。然后我需要一个管理员帐户来查看firebase数据库中的所有数据。我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

您是否以任何方式保护了数据库?如果没有,我建议您开始使用documentation for Firebase security rules

我通常将我的数据库保护为shown in the section on securing user data,然后在数据库中为具有特殊权限的用户提供一个UID列表。

所以使用这样的JSON结构:

users
  Power3000Uid: { ... }
  PufUid: { ... }
admins
  Power3000Uid: true

安全规则如下:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth.uid == $uid || root.child('admins').child(auth.uid).exists()"
      }
    }
  }
}

简而言之,.read规则是:“如果您是该数据的所有者,或者您是管理员,则可以阅读此数据”。在上面的示例中,这意味着您可以阅读任何人的数据,但我只能阅读我自己的数据。

根据您的确切需求,您需要在数据库中的不同位置重复admin-clause,或者(我通常做的)只在JSON树中的高级别重复一次。