2015-07-20 80 views
1

我正在創建一個Firebase數據庫,我想向我的數據添加規則,但我無法找到正確的方式來訪問「規則」中的數據Firebase部分。當我建立了我的默認數據庫,父節點下面如何更改Firebase父節點的名稱以啓用規則

enter image description here

顯示該數據默認爲隨機字母和數字怎麼樣,我可以改變這些節點的名字,讓我訪問他們在' Firebase的規則「部分,或者我如何使用目前的配置訪問它們?

我曾經試圖訪問他們像這樣:enter image description here

,我也試圖像築巢「消息{}」和「{#messageId}」,但他們都沒有內部「規則{}」另一個參考能夠讀取數據。

感謝您的幫助。

+2

請在以後的任何問題中不要使用圖片的文字。相反:從源文件中提取文本並粘貼。它既有助於搜索引擎優化,也可以防止我不得不手動輸入問題中的文本到我的答案中。 –

回答

3

要將規則應用於特定節點下的每個孩子,請使用所謂的$變量

所以你的情況:

{ 
    "rules": { 
     "$messageid": { 
      ".read": "data.child('timestamp').val() > (now - 300000)", 
      ".write": true 
     } 
    } 
} 

所以$messageid下,上述規則適用於所有消息。請參閱Firebase documentation on using $ variables

+0

謝謝你試圖幫助我。我已經嘗試在我的規則中嵌入$ messageid引用,就像你上面顯示的那樣,我甚至將「.read」和「.write」都更改爲true,保留了「規則」和「$ messageid」引用,並且當我運行它仍然告訴我一個模擬器我沒有閱讀規則。我相信這是因爲包含子節點的節點沒有被命名爲「messageid」是否正確?或者是「messageid」是對父節點的通用引用。 – Roger99

+0

沒有。 $變量的名稱沒有區別,它只是一個變量名。但它必須以一個$開始適用於所有的孩子。 –

+0

另請注意,您不能使用規則來**過濾**數據。整個讀取/寫入操作成功或失敗:https://www.firebase.com/docs/security/guide/securing-data.html#section-filter –

相關問題