Firebase用户安全模拟

时间:2017-09-17 08:19:02

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

我真的在这里摸不着头脑,而且在很多其他情况下我一直在阅读。我是Firebase的新手,但对它有所了解。我想要将数据库的某些记录限制为某些用户。所以这是我的JSON:

  "accounts" : {
    "13asdf313" : {
      "dog" : "bacon",
      "email" : "luis@fakeemail.com",
      "first" : "luis",
      "last" : "xxxx"
    },
    "HlELrrGDbiMKgxxxx" : {
      "name" : "Luis"
    },
    "anthony" : {
      "email" : "anthony@fakeemail.com",
      "last" : "xxxx",
      "name" : "anthony"
    },
    "jpSq6UzX0mcAvExxxx" : {
      "name" : "anthony"
    }
  }

以下是根据我一直在阅读的内容设置的规则:

{
  "rules": {
    "accounts":{

      "$uid":{
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    },

  }


}

在模拟器中,我使用了底部条件(我甚至将/ accounts放在位置字段中)。我使用了UID:HlELrrGDbiMKgxxxx,直接从Firebase帐户列表中复制。

enter image description here

这总是出现失败

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:3)

您必须将public function index() { $this->set('datas', $this->Order->find('all', array ( 'conditions' => array('Site_id' => $site_name), 'fields' => array('Date_time','Ac_1_Status','Tempin'), 'order' => array('id' => 'desc'), 'limit' => 200 ) ) ); } 插入位置字段。

否则,您尝试访问整个数据库(标准位置是 root ,它涵盖整个数据库)。您的规则只是为子accounts/HlELrrGDbiMKgxxxx设置,并从身份验证中访问用户ID,数据库中的子位置必须匹配。