Firebase 安全規則入門

Firebase 安全性規則為 Cloud Firestore、即時資料庫和雲端儲存中的資料提供強大、完全可自訂的保護。您可以按照本指南中的步驟輕鬆開始使用規則,保護您的資料並保護您的應用程式免受惡意使用者的侵害。

了解 Firebase 安全規則語言

在開始編寫規則之前,值得花一些時間查看您正在使用的 Firebase 產品的特定 Firebase 安全規則語言。 Cloud Storage 利用通用表達式語言 (CEL) 的超集,該超集依賴於matchallow語句來設定在定義路徑上的存取條件。

首先學習Firebase 安全規則語言的核心語法

設定身份驗證

如果您還沒有這樣做,請將Firebase 驗證新增至您的應用程式。 Firebase 身份驗證支援許多常見的身份驗證方法,並與 Firebase 安全規則整合以提供全面的驗證功能。

您可以為您的應用程式設定額外的自訂身份驗證資訊。

詳細了解Firebase 安全性規則和 Firebase 身份驗證

定義您的資料和規則結構

建構資料的方式可能會影響建構和實施規則的方式。當您定義資料結構時,請考慮它們可能對您的規則結構產生的影響。

例如,在 Cloud Storage 中,您可能想要包含一個表示每個使用者的特定角色的欄位。然後,您的規則可以讀取該欄位並使用它來授予基於角色的存取權限。您也可以建立 Cloud Firestore 資料庫,將存取條件儲存在 Cloud Firestore 文件中,然後從 Cloud Storage 安全性規則存取這些文件。

在定義資料和規則架構時,請記住規則級聯或不級聯的方式,這取決於您的產品。使用即時資料庫,規則從上到下工作,較淺的規則覆蓋較深的規則。如果規則授予特定路徑的讀取或寫入權限,那麼它也會授予對其下所有子節點的存取權限。相較之下,使用 Cloud Firestore 和 Cloud Storage,規則僅適用於資料層次結構的指定級別,您可以編寫明確規則來控制對不同級別的存取。

存取您的規則

若要查看現有規則,請使用 Firebase CLI 或 Firebase 控制台。確保使用相同的方法一致地編輯規則,以避免錯誤地覆寫更新。如果您不確定本機定義的規則是否反映最新更新,Firebase 控制台始終顯示 Firebase 安全性規則的最新部署版本。

若要從Firebase 控制台存取您的規則,請選擇您的項目,然後在左側導覽面板中點擊儲存。進入正確的資料庫或儲存桶後,按一下規則

若要從 Firebase CLI 存取您的規則,請前往firebase.json 檔案中記錄的規則檔案。

編寫基本規則

當您開發應用程式並了解規則時,請嘗試實施規則來解決一些基本用例,包括以下內容:

  • 僅限內容所有者:限制使用者對內容的存取。
  • 混合訪問:限制使用者的寫入訪問,但允許公共讀取訪問。
  • 基於屬性的存取:限制對群組或使用者類型的存取。

測試你的規則

如果您在 Firebase 控制台中設定 Firebase 安全性規則,則可以使用Firebase Rules Playground快速驗證行為。但是,我們建議您在將變更部署到生產環境之前使用本機模擬器套件進行更徹底的測試。

部署規則

使用 Firebase 控制台或 Firebase CLI 將規則部署到生產環境。請依照管理和部署 Firebase 安全性規則中概述的步驟進行操作。