開始使用 Firebase 安全性規則

Firebase Security Rules 可為 Cloud FirestoreRealtime DatabaseCloud Storage 中的資料提供強大且可完全自訂的保護措施。您可以按照本指南中的步驟輕鬆開始使用 Rules,保護資料並防止惡意使用者入侵應用程式。

瞭解 Firebase Security Rules 語言

開始撰寫規則前,建議您花點時間查看所用 Firebase 產品的特定 Firebase Security Rules 語言。Cloud Storage 會利用一般運算語言 (CEL) 的超集,該語言會依賴 matchallow 陳述式,設定在定義路徑的存取條件。

首先學習 Firebase Security Rules 語言的核心語法

設定「Authentication

如果您尚未這麼做,請將 Firebase Authentication 新增至應用程式Firebase Authentication 支援許多常見的驗證方法,並與 Firebase Security Rules 整合,提供全面的驗證功能。

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

進一步瞭解 Firebase Security RulesFirebase Authentication

定義資料和規則結構

資料的架構可能會影響您建立及實作規則的方式。定義資料結構時,請考量這些結構對 Rules 結構可能造成的影響。

例如,在 Cloud Storage 中,您可能會加入一個欄位,用來表示每位使用者的特定角色。這樣一來,規則就能讀取該欄位,並用於授予角色型存取權。您也可以建立 Cloud Firestore 資料庫,在 Cloud Firestore 文件中儲存存取條件,然後透過 Cloud Storage Security Rules 存取這些文件。

定義資料和規則架構時,請根據產品考量規則是否要依序套用。在 Realtime Database 中,規則會由上而下運作,較淺層的規則會覆寫較深層的規則。如果規則授予特定路徑的讀取或寫入權限,則也會授予該路徑下所有子節點的存取權。相較之下,Cloud FirestoreCloud Storage 的規則只會套用至資料階層結構的特定層級,您必須撰寫明確的規則來控管不同層級的存取權。

存取規則

如要查看現有的 Rules,請使用 Firebase CLI 或 Firebase 主控台。請務必使用相同的方法來編輯規則,以免誤將更新內容覆寫。如果您不確定在本機定義的規則是否反映最新更新,Firebase 控制台一律會顯示最近部署的 Firebase Security Rules 版本。

如要透過 Firebase 控制台存取規則,請選取專案,然後在左側導覽面板中按一下「Storage」。找到正確的資料庫或儲存空間 bucket 後,請按一下 Rules

如要透過 Firebase CLI 存取規則,請前往 firebase.json 檔案中註明的規則檔案。

編寫基本規則

在開發應用程式並瞭解 Rules 時,請嘗試導入 Rules 來處理幾個基本用途,包括:

  • 僅限內容擁有者:限制使用者存取內容。
  • 混合存取權:限制使用者寫入存取權,但允許公眾讀取存取權。
  • 屬性存取權:限制特定群組或使用者類型的存取權。

測試規則

如果您在 Firebase 控制台設定 Firebase Security Rules,可以使用 Firebase 規則 Playground 快速驗證行為。不過,建議您在將變更部署至正式環境前,先對 Local Emulator Suite 進行更徹底的測試。

部署規則

請使用 Firebase 控制台或 Firebase CLI 將規則部署至實際環境。請按照「管理及部署 Firebase Security Rules」一文中的步驟操作。