Firebase 检索用户';对给定数据库引用而不是数据本身的权限?

Firebase 检索用户';对给定数据库引用而不是数据本身的权限?,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我正在用javascript构建一个与firebase对话的react+redux应用程序。具有不同权限的不同用户(基于用户角色)将使用此应用程序,因此我希望根据用户的权限呈现不同的组件 现在,由于我已经拥有firebase中的所有权限作为规则,我也不想在客户端中复制该数据。我宁愿问firebase当前登录的用户可以做什么,不能做什么 这在firebase中似乎不可能做到。我希望能够做到的是: var canReadBars = firebase.database().ref('foo/bar'

我正在用javascript构建一个与firebase对话的react+redux应用程序。具有不同权限的不同用户(基于用户角色)将使用此应用程序,因此我希望根据用户的权限呈现不同的组件

现在,由于我已经拥有firebase中的所有权限作为规则,我也不想在客户端中复制该数据。我宁愿问firebase当前登录的用户可以做什么,不能做什么

这在firebase中似乎不可能做到。我希望能够做到的是:

var canReadBars = firebase.database().ref('foo/bar').hasPermission('read');
if (canReadBars){
  // render the component
}
一个(相当难看的)解决方法是简单地获取数据本身,并根据我是否获得了拒绝的权限来确定要呈现什么,但这对写操作并不起作用


我在谷歌上搜索了几个小时,试图找到答案。有人有什么想法吗?

当用户没有数据访问权限时,Firebase会故意向客户端公开一条通用错误消息


客户端无法获取其在数据库中拥有的权限列表。也没有办法公开用户友好的错误消息。

谢谢您的回复!但我并不是真的在寻找这些东西。我只需要firebase告诉我是否可以写入/读取特定路径。我不需要权限列表或某种错误消息,一个简单的true或false就足够了。没有用于此的API。好的,但是有计划实现这样的功能吗?如果没有,还有其他解决办法吗?我想这对其他开发人员也非常有用。如果您仍在寻找解决方法(或其他在这方面遇到障碍的人),一种方法是将用户角色存储在用户节点下的firebase数据库中。每个用户文档都存储在其uid下,并在规则中指定这些文档只能由具有匹配uid的授权用户读取。