2016-03-01 73 views
0

我只有擁有密鑰值時才擁有公共訪問權限的服務器列表。Firebase安全規則保護列表和公共對象

基本上如果用戶有對象鍵,那麼他可以檢索完整的子對象。但他不應該被允許訪問對象列表。

對象的實例

{ 
    "servers": { // list of server 

     // list should not be access directly - no anonymous access 

     "key1": { // this object can be access anonymously, if user knows the key 
      "name": "linux" 
      //... 
     }, 

     "key2": { 
      "name": "ubuntu" 
     } 
    } 
} 

我如何作出上述目的的火力點等安全規則?

回答

0

簡單:

{ 
    "rules": { 
    ".read": false, 
    "servers": { 
     "$serverid": { 
     ".read": true 
     } 
    } 
    } 
} 

因爲根不可讀,/servers也無法讀取,只有當你有一個/servers/$serverid不讀的動作變得有效。

這個和許多類似的話題都在Firebase guide on Security & Rules

+0

也許我錯了,但我想如果你從父母那裏拿走許可,那麼你不能從孩子那裏恢復。我會試着看看那是怎麼回事。 – Basit

+0

反過來說:一旦你獲得了許可,你就不能在較低的等級上拿走它。 –