Firebase 安全規則為您在 Cloud Firestore、實時數據庫和 Cloud Storage 中的數據提供強大、完全可定制的保護。您可以按照本指南中的步驟輕鬆開始使用規則,保護您的數據並保護您的應用免受惡意用戶的侵害。
了解 Firebase 安全規則語言
在您開始編寫規則之前,值得花一些時間查看您正在使用的 Firebase 產品的特定 Firebase 安全規則語言。 Cloud Storage 利用通用表達式語言 (CEL) 的超集,該超集依賴於match
和allow
語句,這些語句為在定義的路徑處設置訪問條件。
首先學習Firebase 安全規則語言的核心語法。
設置身份驗證
如果您還沒有這樣做,請將Firebase 身份驗證添加到您的應用中。 Firebase 身份驗證支持許多常見的身份驗證方法,並與 Firebase 安全規則集成以提供全面的驗證功能。
您可以為您的應用設置額外的自定義身份驗證信息。
詳細了解Firebase 安全規則和 Firebase 身份驗證。
定義您的數據和規則結構
您構建數據的方式可能會影響您構建和實施規則的方式。在定義數據結構時,請考慮它們可能對規則結構產生的影響。
例如,在 Cloud Storage 中,您可能希望包含一個表示每個用戶的特定角色的字段。然後,您的規則可以讀取該字段並使用它來授予基於角色的訪問權限。您還可以創建 Cloud Firestore 數據庫,將訪問條件存儲在 Cloud Firestore 文檔中,然後從 Cloud Storage 安全規則訪問這些文檔。
在定義數據和規則架構時,請記住規則級聯或不級聯的方式,具體取決於您的產品。使用實時數據庫,規則自上而下工作,較淺的規則覆蓋較深的規則。如果規則授予特定路徑的讀取或寫入權限,則它還授予對其下所有子節點的訪問權限。相比之下,對於 Cloud Firestore 和 Cloud Storage,規則僅適用於數據層次結構的指定級別,您可以編寫明確的規則來控制對不同級別的訪問。
訪問您的規則
要查看現有規則,請使用 Firebase CLI 或 Firebase 控制台。確保始終使用相同的方法編輯規則,以避免錯誤地覆蓋更新。如果您不確定本地定義的規則是否反映了最新更新,Firebase 控制台始終會顯示最新部署的 Firebase 安全規則版本。
要從Firebase 控制台訪問您的規則,請選擇您的項目,然後在左側導航面板中,點擊Storage 。在正確的數據庫或存儲桶中單擊規則。
要從 Firebase CLI 訪問您的規則,請轉到您的firebase.json 文件中註明的規則文件。
編寫基本規則
在您開發應用程序並了解規則時,請嘗試實施規則以解決一些基本用例,包括以下內容:
- 僅限內容所有者:限制用戶對內容的訪問。
- 混合訪問:限制用戶的寫訪問,但允許公共讀訪問。
- 基於屬性的訪問:限制對某個組或用戶類型的訪問。
測試你的規則
如果您在 Firebase 控制台中設置 Firebase 安全規則,則可以使用Firebase 規則遊樂場快速驗證行為。但是,我們建議您在將更改部署到生產環境之前使用Local Emulator Suite進行更徹底的測試。
部署規則
使用 Firebase 控制台或 Firebase CLI 將您的規則部署到生產環境。按照管理和部署 Firebase 安全規則中概述的步驟操作。