如要在 Firebase 主控台中快速測試更新後的 Firebase Security Rules,請使用 Rules Playground。
您可以使用 Rules Playground 這項方便的工具,探索新的行為,或在編寫規則時快速驗證規則。系統會根據您為模擬作業設定的參數,顯示訊息,確認存取權已獲得許可或遭拒。
使用規則模擬工具
- 開啟 Firebase 控制台,然後選取所需專案。
- 接著,請在產品導覽中執行下列其中一種操作:
- 視情況選取 Realtime Database、Cloud Firestore 或「儲存空間」,然後按一下「規則」,前往 Rules 編輯器。
- 編輯完成後,請在編輯器中按一下「Rules Playground」。
- 在「Rules Playground」設定中,選取測試選項,包括:
- 測試讀取或寫入。
- 資料庫或儲存值區中的特定「位置」,以路徑表示。
- 驗證類型:未經驗證、已驗證的匿名使用者,或特定使用者 ID。
- 規則特別參照的文件專屬資料 (例如,如果規則要求在允許寫入前必須有特定欄位)。
- 按一下「執行」,然後在編輯器上方的橫幅中查看結果。
規則模擬工具的範例情境
請使用下列情境和基本規則,測試規則 Playground 的行為。
Cloud Firestore
service cloud.firestore {
match /databases/{database}/documents {
// Allow only authenticated content owners access
match /some_collection/{document} {
allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
}
}
}
Realtime Database
// These rules grant access to a node matching the authenticated // user's ID from the Firebase auth token { "rules": { "users": { "$uid": { ".read": "$uid === auth.uid", ".write": "$uid === auth.uid" } } } }
Cloud Storage
// Grants a user access to a node matching their user ID
service firebase.storage {
match /b/{bucket}/o {
// Files look like: "user/<UID>/path/to/file.txt"
match /user/{userId}/{allPaths=**} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
在 Rules 編輯器中新增上述規則。
在「模擬類型」下拉式選單中選取「get」,然後在「位置」欄位中輸入有效路徑。
開啟「Authentication」,然後從「Provider」下拉式選單中選取驗證類型。
輸入使用者 ID 詳細資料,然後按一下「執行」。
模擬結果會顯示在編輯器頂端。視您輸入的使用者 ID 詳細資料而定,您應該會看到橫幅,確認讀取權已成功授予或拒絕。