快速驗證 Firebase 安全性規則

如要在 Firebase 主控台中快速測試更新後的 Firebase Security Rules,請使用 Rules Playground。

您在探索「規則」專區 新的行為,或是在您撰寫規則的同時快速驗證規則。它會顯示 確認根據以下原則允許或拒絕存取訊息: 您為模擬設定的參數

使用規則模擬工具

  1. 開啟 Firebase 控制台,然後選取所需專案。
  2. 接著,在產品導覽介面中執行下列其中一項操作:
    • 視情況選取 Realtime DatabaseCloud Firestore 或「儲存空間」,然後按一下「規則」,前往 Rules 編輯器。
  3. 修改完成後,按一下編輯器中的「Rules Playground」
  4. 在「Rules Playground」設定中,選取測試選項,包括:
    • 測試讀取或寫入作業。
    • 資料庫或儲存空間值區中的特定「位置」,做為路徑。
    • 驗證類型 — 未驗證、沒有驗證的匿名使用者或 特定使用者 ID
    • 規則特別參照的文件專屬資料 (例如,如果規則要求在允許寫入前必須有特定欄位)。
  5. 按一下「執行」,然後在編輯器上方的橫幅中尋找結果。

規則模擬情境範例

透過以下範例情境測試規則遊樂場行為 和基本規則

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 詳細資料,應該會看到確認已讀取的橫幅 是否已成功允許或拒絕