如要在 Firebase 主控台中快速測試更新後的 Firebase Security Rules,請使用 Rules Playground。
您在探索「規則」專區 新的行為,或是在您撰寫規則的同時快速驗證規則。它會顯示 確認根據以下原則允許或拒絕存取訊息: 您為模擬設定的參數
使用規則模擬工具
- 開啟 Firebase 控制台,然後選取所需專案。
- 接著,在產品導覽介面中執行下列其中一項操作:
- 視情況選取 Realtime Database、Cloud Firestore 或「儲存空間」,然後按一下「規則」,前往 Rules 編輯器。
- 修改完成後,按一下編輯器中的「Rules Playground」。
- 在「Rules Playground」設定中,選取測試選項,包括:
- 測試讀取或寫入作業。
- 資料庫或儲存空間值區中的特定「位置」,做為路徑。
- 驗證類型 — 未驗證、沒有驗證的匿名使用者或 特定使用者 ID
- 規則特別參照的文件專屬資料 (例如,如果規則要求在允許寫入前必須有特定欄位)。
- 按一下「執行」,然後在編輯器上方的橫幅中尋找結果。
規則模擬情境範例
透過以下範例情境測試規則遊樂場行為 和基本規則
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 編輯器中,新增上述規則。
從「模擬類型」下拉式選單中選取「取得」,然後輸入有效的 位於「Location」欄位中的路徑。
開啟「Authentication」,然後從下列選項中選取驗證類型: Provider drodpdown。
輸入使用者 ID 詳細資料,然後按一下「執行」。
模擬結果會顯示在編輯器頂端。根據用途 您輸入的使用者 ID 詳細資料,應該會看到確認已讀取的橫幅 是否已成功允許或拒絕