Firebase数据库查询:测试是否存在给定值,但无法列出所有值

时间:2016-12-10 20:29:37

标签: firebase-realtime-database

假设我有一个看起来像这样的Firebase数据库。

root
  devices
    00EB4A1
    0008634
  devices_unowned
    00056F3
    000A689

单个设备只列在devicesdevices_unowned下,而不是两者都列在其中。我需要一种安全的方法来允许无主设备被拥有,而不会暴露无主设备列表。

我的移动应用的用户可能偶然发现当前未拥有的设备。我需要他们能够执行诸如" root/devices_unowned/000A689 exists, yes or no?"之类的查询。但是不能执行诸如" list all the devices at /root/devices_unowned"。

之类的

这可能吗?

1 个答案:

答案 0 :(得分:1)

对我来说似乎非常可行:

{
  "rules": {
    "devices": {
      "$deviceid": {
        ".read": true
      }
    },
    "devices_unowned": {
      "$deviceid": {
        ".read": true
      }
    }
  }
}

使用这些规则,每个用户都可以读取每个特定设备,但没有用户(具有管理权限的用户除外)可以读取所有设备的列表。