Firebase 安全性規則可為 Cloud Firestore、即時資料庫和 Cloud Storage 中的資料提供強大且可完全自訂的防護機制。按照本指南中的步驟,您可以輕鬆開始使用規則,確保資料安全無虞,並保護應用程式免受惡意使用者的侵擾。
瞭解 Firebase 安全性規則語言
開始編寫規則前,建議您先花點時間針對目前使用的 Firebase 產品查看特定 Firebase 安全性規則語言。Cloud Storage 會使用一般運算語言 (CEL) 的超集,該超集合依賴於定義路徑上設定存取條件的 match
和 allow
陳述式。
請先瞭解 Firebase 安全性規則語言的核心語法。
設定驗證
如果您尚未將 Firebase 驗證新增至您的應用程式,請進行這項操作。Firebase 驗證支援許多常見的驗證方法,並與 Firebase 安全性規則整合,以提供完善的驗證功能。
您可以為應用程式設定其他自訂驗證資訊。
進一步瞭解 Firebase 安全性規則和 Firebase 驗證。
定義資料和規則結構
您建構資料的方式可能會影響您建構和實作規則的方式。定義資料結構時,請考量這些結構對規則結構可能造成的影響。
比方說,在 Cloud Storage 中,您可能會想要加入代表每個使用者特定角色的欄位。接著,您的規則可以讀取該欄位,並使用該欄位授予以角色為基礎的存取權。您也可以建立 Cloud Firestore 資料庫、將存取條件儲存在 Cloud Firestore 文件中,然後透過 Cloud Storage 安全性規則存取這些文件。
定義資料和規則架構時,請注意規則的串聯方式 (視產品而定)。在即時資料庫中,規則是由上而下運作,且規則較深的規則會覆寫深層的規則。如果規則授予特定路徑的讀取或寫入權限,則也會授予該路徑下所有子節點的存取權。相較之下,Cloud Firestore 和 Cloud Storage 僅會在資料階層的指定層級套用規則,並編寫明確規則來控管不同層級的存取權。
存取規則
如要查看現有規則,請使用 Firebase CLI 或 Firebase 控制台。請務必使用相同方法編輯規則,以免意外覆寫更新。如果不確定本機定義的規則是否反映最近的更新,Firebase 控制台一律會顯示最近部署的 Firebase 安全性規則版本。
如要從 Firebase 控制台存取規則,請選取專案,然後按一下左側導覽面板中的「Storage」(儲存空間)。瀏覽至正確的資料庫或儲存空間值區後,請按一下「Rules」。
如要從 Firebase CLI 存取規則,請前往 firebase.json 檔案中註明的規則檔案。
撰寫基本規則
在開發應用程式和瞭解規則的過程中,請嘗試實作規則來解決一些基本用途,包括:
- 僅限內容擁有者:限制使用者存取內容。
- 混合存取權:限制使用者的寫入權限,但允許公開讀取。
- 以屬性為基礎的存取權:限制特定群組或使用者的存取權。
測試規則
如果您在 Firebase 控制台中設定 Firebase 安全性規則,可以使用 Firebase 規則 Playground 快速驗證行為。不過,建議您先使用本機模擬器套件進行更全面的測試,再將變更部署至實際工作環境。
部署規則
使用 Firebase 主控台或 Firebase CLI 將規則部署至實際工作環境。請按照「管理及部署 Firebase 安全性規則」所述的步驟進行。