昨天的內容講到Rules安全規則的簡單概念,今天會講到Firestore與RealTime Database的Rules 安全規則的基本寫法
service cloud.firestore{ ----------------不用更動
match/databases/{database}/documents{---不用更動
match/路徑{
allow read , write : if 條件判斷;
}
}
}
下圖為實際firestore的rules規則,其中可以看到內層的match透過萬用字元(**)指定資料庫下的「所有的文件」都有權限可以寫入和讀取
* rules中不會限制有幾個match,但如果皆是屬同一文件,只要任一個allow的判斷回傳為true,就有權限可以讀取或寫入
{
"rules" : {
".read" : true (or false),
".write" : true (or false)
}
}
* 規則順序-淺層判斷至深層(只適用於.read和.write)
* 只要是存取資料,規則的true與false都會是從 root 根節點(淺層)開始判斷
* 不寫讀寫的規則,會變成預設值false(false不會影響深層)
* 如不想淺層規則影響深層規則,可以把相關規則設定留空,就會自動採用深層的設定