欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

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為您的應用設置Cloud FirestoreCloud Storage實時數據庫
編寫您的 Firebase 安全規則詳細了解規則的工作原理設置一些基本規則
測試您的 Firebase 安全規則在將應用部署到生產環境之前,使用實時數據庫和 Cloud Firestore 模擬器來測試您的應用行為並驗證您的規則。
部署您的 Firebase 安全規則使用 Firebase 控制台或 Firebase CLI 將您的規則部署到生產環境。

下一步

,

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為您的應用設置Cloud FirestoreCloud Storage實時數據庫
編寫您的 Firebase 安全規則詳細了解規則的工作原理設置一些基本規則
測試您的 Firebase 安全規則在將應用部署到生產環境之前,使用實時數據庫和 Cloud Firestore 模擬器來測試您的應用行為並驗證您的規則。
部署您的 Firebase 安全規則使用 Firebase 控制台或 Firebase CLI 將您的規則部署到生產環境。

下一步