默認設置提供了完全訪問:如何使用Firebase規則對所有節點進行讀取/寫入訪問?
{
"rules": {
".read": true,
".write": true
}
}
對於從火力地堡指南和文檔測試我的規則寫入的理解,我(現在回落至)努力實現相同的結果的緣故通過編寫規則爲4個父節點。
如果有所作爲,前兩個節點只有值,沒有子節點。 ** Sidequest:他們還叫做節點嗎?
下面的規則會導致與上述規則更改爲錯誤讀取和寫入時相同的行爲。
{
"rules": {
"myNode1": {
".read" : true,
".write" : true
},
"myNode2" : {
".read" : true,
".write" : true
},
"myNode3" : {
".read" : true,
".write" : true
},
"myNode4" : {
".read" : true,
".write" : true
}
}
}
我的規則出了什麼問題?
UPDATE /背景:
我有停止在這裏運行(在if (authData) {
子句中)的authDataCallback:
var ref = new Firebase("https://<my>.firebaseio.com")
ref.once("value", function(snapshot){
發現,如果我改變裁判VAR到更具體的東西:var ref = new Firebase("https://<my>.firebaseio.com/myNode1")
,將authDataCallback完整運行。
當然,不需要生成整個數據庫的快照;這是獲取我需要的數據的一種困惑方式。我已經更新了,但我仍然困惑於爲什麼規則阻止了回調,考慮到我對整個數據庫進行了讀寫操作。
這些只是規則,據我所知,是非常有效的規則。爲了能夠告訴你什麼是錯的,你還應該顯示你正在嘗試做什麼(可能執行某種形式的查詢/讀取操作),你期望的結果是什麼以及你得到了什麼結果。 –
@FrankvanPuffelen我添加了一些上下文。 – JBG
完美,這確實是缺少的。 Jay的回答是正確的:在你的第二套規則中,用戶不能讀取根節點,所以這個監聽器不起作用。這不是很直觀,我同意。我們擴展了文檔中的解釋,但很多人仍然遇到它。 https://www.firebase.com/docs/security/guide/securing-data.html#section-filter –