開始使用 Firebase 安全性規則

Firebase 安全性規則可為 Cloud Firestore、Realtime Database 和 Cloud Storage 中的資料提供強大且完全可自訂的保護。您可以按照本指南中的步驟輕鬆開始使用 Security Rules,保護資料和應用程式免受惡意使用者侵害。

瞭解 Firebase 安全性規則語言

開始編寫規則前,建議您先花點時間,查看所用 Firebase 產品的特定 Firebase 安全性規則語言。Realtime Database 採用類似 JavaScript 的語法和 JSON 結構,用於 Security Rules。

首先,請瞭解 Firebase 安全性規則語言的核心語法。

設定「Authentication」

如果尚未完成,請將 Firebase Authentication 新增至應用程式。Firebase Authentication 支援多種常見的驗證方式,並與 Firebase 安全性規則整合,提供全面的驗證功能。

您可以為應用程式設定其他自訂驗證資訊。

進一步瞭解 Firebase 安全性規則和 Firebase Authentication。

定義資料和規則結構

請仔細規劃資料結構,確保符合安全性需求。

定義安全性資料

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

舉例來說,在 Realtime Database 中,您可能需要加入一個欄位,用來表示每位使用者的特定角色。接著,規則可以讀取該欄位,並根據該欄位授予角色型存取權。

定義資料和規則架構時,請留意規則是否會依產品而串聯。在 Realtime Database 中,規則會由上而下套用,較淺層的規則會覆寫較深層的規則。如果規則授予特定路徑的讀取或寫入權限,也會授予該路徑下所有子節點的存取權。相較之下,使用 Cloud Firestore 和 Cloud Storage 時,規則只會套用至資料階層的指定層級,您必須編寫明確規則,控管不同層級的存取權。

存取規則

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

如要從 Firebase 控制台存取規則,請選取專案,然後在左側導覽面板中按一下「即時資料庫」。進入正確的資料庫或儲存空間 bucket 後,按一下 Security Rules。

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

編寫基本規則

在開發應用程式並瞭解 Security Rules 的過程中,請嘗試導入 Security Rules,以解決一些基本用途,包括:

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

測試規則

在 Firebase 控制台設定 Firebase 安全性規則時,可以使用 Firebase 規則 Playground 快速驗證行為。不過,建議您先使用 Local Emulator Suite 進行更全面的測試,再將變更部署至正式環境。

部署規則

使用 Firebase 控制台或 Firebase CLI 將規則部署至正式環境。請按照「管理及部署 Firebase 安全性規則」一文所述的步驟操作。