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