我正在使用firebase构建Android应用。简单用户将登录并向数据库添加数据。用户只能看到自己的数据。然后我需要一个管理员帐户来查看firebase数据库中的所有数据。我该怎么办呢?
答案 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树中的高级别重复一次。