Firebase数据库规则中是否有任何规则功能只允许在特定事件期间对特定值进行读取访问?

时间:2017-08-10 07:41:18

标签: security firebase firebase-realtime-database firebase-security

所以这是我的数据的示例结构:

"userPublic" : {
"uid" : {
  "fullName" : "name",
  "userImg" : "picture url"
  "email" : "fake email"
  }
}

基本上,我想允许用户邀请其他用户加入群组。此过程涉及通过电子邮件搜索用户,该用户存储在他们的uid下。将用户添加到组时我需要uid,所以我想使用电子邮件找到正确的用户的uid。

现在,通常我要做的就是运行一个查询,只获取带有所请求电子邮件值的uid。目前我已设置规则,以便任何经过身份验证的用户都可以阅读“userPublic”中的信息

但是,由于隐私,我不希望请求此信息的用户始终具有对电子邮件值的读取权限。 相反,我希望用户只有在用于搜索的电子邮件与其匹配时才具有对电子邮件值的读取权限。我试图弄清楚如果只有在请求它的用户使用该特定电子邮件地址时才允许对电子邮件中的值进行读取访问,但仍允许对uid中的所有其他内容进行读取访问。

由于Firebase级联中的规则,我知道一个选项是将一个键中的始终可读值与另一个键中的电子邮件分开;然而,这仍然让我难以理解如何使电子邮件在某些事件中只能读取。我还想过制作一个临时节点,其中存储了搜索到的电子邮件地址。然后设置像

这样的规则
".read" : "email.val() === 
           root.child(tempNode).child(auth.uid).child(email).val()"

但是整个过程似乎过于复杂和冗长,特别是对于客户端代码。

Firebase数据库中是否有任何规则功能只允许在特定事件期间对特定值/节点进行读取访问?如果没有,是否有比上面提到的更简单的解决方法?

0 个答案:

没有答案