Firebase 安全規則

使用我們靈活、可擴展的 Firebase 安全規則來保護您在 Cloud Firestore、Firebase 實時數據庫和 Cloud Storage 中的數據。

Firebase 安全規則介於您的數據和惡意用戶之間。您可以編寫簡單或複雜的規則來保護您的應用程序的數據到您的特定應用程序所需的粒度級別。

Firebase 安全規則利用可擴展、靈活的配置語言來定義您的用戶可以訪問實時數據庫、Cloud Firestore 和 Cloud Storage 的數據。 Firebase 實時數據庫規則在規則定義中利用 JSON,而 Cloud Firestore 安全規則和 Cloud Storage 的 Firebase 安全規則利用一種獨特的語言來適應更複雜的特定於規則的結構。

詳細了解如何為您在應用中使用的特定 Firebase 產品設置規則,以及規則行為在 Firebase 產品之間有何不同。

關鍵能力

靈活性編寫對您的應用程序的結構和行為有意義的自定義規則。規則使用允許您利用自己的數據來授權訪問的語言。
粒度您的規則可以根據需要寬泛或狹窄。
獨立安全由於規則是在您的應用之外(在 Firebase 控制台或 Firebase CLI 中)定義的,因此客戶端不負責實施安全性,錯誤不會危及數據,並且您的數據始終受到保護。

它們是如何工作的?

Firebase 安全規則的工作方式是將模式與數據庫路徑進行匹配,然後應用自定義條件以允許訪問這些路徑上的數據。 Firebase 產品中的所有規則都有一個路徑匹配組件和一個允許讀或寫訪問的條件語句。您必須為您在應用中使用的每個 Firebase 產品定義規則。

對於 Cloud Firestore 和 Cloud Storage,規則使用以下語法:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

對於實時數據庫,基於 JSON 的規則使用以下語法:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

規則被應用為OR語句,而不是AND語句。因此,如果多個規則匹配一條路徑,並且任何匹配的條件都授予訪問權限,則規則授予對該路徑上數據的訪問權限。因此,如果寬泛的規則授予對數據的訪問權限,則不能使用更具體的規則進行限制。但是,您可以通過確保規則不會重疊太多來避免此問題。 Firebase 安全規則標誌在您匹配的路徑中重疊作為編譯器警告。

Firebase 安全規則還可以利用身份驗證來授予基於用戶的權限,您設置的條件可以非常基本或非常複雜。了解更多關於規則的語言行為,你開始寫規則之前。

實施路徑

集成產品 SDK建立雲公司的FireStore雲存儲,或實時數據庫為您的應用程序。
編寫您的 Firebase 安全規則詳細了解規則是如何工作的,並設置了一些基本的規則
測試您的 Firebase 安全規則在將應用部署到生產環境之前,使用實時數據庫和 Cloud Firestore 模擬器測試應用的行為並驗證規則。
部署您的 Firebase 安全規則使用 Firebase 控制台或 Firebase CLI 將您的規則部署到生產中。

下一步