0

我正在构建一个带有Firebase的Android应用程序。简单的用户将登录并将数据添加到数据库。用户只能看到他们自己的数据。然后,我需要一个可以查看Firebase数据库中所有数据的管理员帐户。我应该怎么做呢?Firebase管理员和用户帐户

回答

0

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

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

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

和安全规则是这样的::

用JSON结构这样

所以

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

在口头上.read规则是:“如果你是,你可以读取该数据它的拥有者,或者如果你是管理员“。在上面的示例中,这意味着您可以阅读任何人的数据,但我只能阅读我自己的数据。

根据您的确切需求,您需要在数据库中的各个位置重复管理子句,或者(我通常会这样做)在JSON树中将其添加到高级别。

+0

谢谢。还有一件事。我的应用程序将有3个登录选项 - 脸书,谷歌和电子邮件。 FB和谷歌通常会使用简单的用户,而电子邮件将被管理员使用。所以我手动创建一个帐户,然后把它放在管理节点下? – Power3000

+0

如果你采取我简单的方法,你将不得不以某种方式将这些用户的UID添加到'/ admins'节点。还有很多其他的方法可以实现这一点,但大多数情况下,他们在填充这个所谓的白名单时会有所不同。他们很可能会在规则中看到类似的结果:“如果用户存在/存在,他们有特殊的权力”。 –