快速驗證 Firebase 安全性規則

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

您可以使用 Rules Playground 這項方便的工具,探索新的行為,或在編寫規則時快速驗證規則。系統會根據您為模擬作業設定的參數,顯示訊息,確認存取權已獲得許可或遭拒。

使用規則模擬工具

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

規則模擬工具的範例情境

請使用下列情境和基本規則,測試規則 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 詳細資料而定,您應該會看到橫幅,確認讀取權已成功授予或拒絕。