Firebase Security Rules為 Cloud Firestore、Realtime Database 和 Cloud Storage 中的資料提供強大且完全可自訂的保護措施。請按照本指南中的步驟操作,輕鬆開始使用 Rules,確保資料安全無虞,並保護應用程式免於惡意使用者侵擾。
瞭解 Firebase Security Rules 種語言
開始編寫規則前,請花點時間查看所用 Firebase 產品的特定 Firebase Security Rules 語言。Realtime Database 採用類似 JavaScript 的語法和 JSON 結構。Rules或者,Cloud Firestore 和 Cloud Storage 會運用一般運算語言 (CEL) 的超集,並依據 match
和 allow
陳述式,在定義的路徑中設定存取條件。
進一步瞭解 Firebase Security Rules 語言。
設定「Authentication」
如果尚未完成這項操作,請找出具有 Firebase Authentication 的使用者。 Firebase Authentication 支援多種常見的驗證方法,並與 Firebase Security Rules 整合,提供完整的驗證功能。
您可以為應用程式設定額外的自訂驗證資訊。
進一步瞭解 Firebase Security Rules 和 Firebase Authentication。
定義資料和規則結構
資料結構可能會影響規則的結構和實作方式。定義資料結構時,請考量這些結構對 Rules 結構可能造成的影響。
舉例來說,在 Cloud Firestore 中,您可能想加入一個欄位,指出每位使用者的特定角色。然後,規則就能讀取該欄位,並用來授予角色型存取權。
定義資料和規則架構時,請注意,如果任何規則授予資料集存取權,Firebase Security Rules 就會授予該資料集存取權。換句話說,如果您已在資料階層的較高層級授予存取權,就無法在子路徑中調整存取權。
存取規則
如要查看現有的 Rules,請使用 Firebase CLI 或 Firebase 控制台。請務必使用相同方法編輯規則,以免不小心覆寫更新。如果不確定本機定義的規則是否反映最新更新,Firebase 控制台一律會顯示最近部署的 Firebase Security Rules 版本。
如要從 Firebase 控制台存取規則,請選取專案,然後前往 Realtime Database、Cloud Firestore 或「Storage」。進入正確的資料庫或儲存空間 bucket 後,按一下「規則」。
如要透過 Firebase CLI 存取規則,請前往firebase.json 檔案中註明的規則檔案。
撰寫基本規則
開發應用程式並瞭解 Rules 時,請嘗試實作幾項基本安全性規則,包括下列用途:
- 僅限內容擁有者:限制使用者存取內容。
- 混合存取權:限制使用者的寫入權限,但允許公開讀取。
- 屬性存取權:限制特定群組或類型使用者的存取權。
測試規則
如要完整驗證應用程式的行為並確認 Firebase Security Rules
設定,請使用 Firebase 模擬器在本機環境中執行及自動化單元測試。
如果您在 Firebase 控制台中設定 Firebase Security Rules,可以使用 Firebase 規則模擬器快速驗證行為。不過,建議您先使用 Firebase 模擬器進行更徹底的測試,再將變更部署至正式環境。
部署規則
使用 Firebase 控制台或 Firebase CLI 將規則部署至正式環境。請按照「管理及部署 Firebase Security Rules」一文中的步驟操作。