Firebase 安全規則
使用我們靈活、可擴展的 Firebase 安全性規則來保護您在 Cloud Firestore、Firebase 即時資料庫和雲端儲存中的資料。
Firebase 安全性規則位於您的資料和惡意使用者之間。您可以編寫簡單或複雜的規則,將應用程式的資料保護到特定應用程式所需的粒度等級。
Firebase 安全性規則利用可擴充、靈活的設定語言來定義使用者可以存取即時資料庫、Cloud Firestore 和雲端儲存的資料。 Firebase 即時資料庫安全性規則在規則定義中利用 JSON,而 Cloud Firestore 安全性規則和 Firebase Cloud Storage 安全性規則則利用獨特的語言,旨在適應更複雜的特定於規則的結構。
詳細了解如何為您在應用程式中使用的特定 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 Firestore 、 Cloud Storage或Realtime Database 。 | |
編寫您的 Firebase 安全性規則 | 詳細了解規則的工作原理並設定一些基本規則 | |
測試您的 Firebase 安全性規則 | 在將規則部署到生產環境之前,使用即時資料庫和 Cloud Firestore 模擬器測試應用程式的行為並驗證規則。 | |
部署您的 Firebase 安全性規則 | 使用 Firebase 控制台或 Firebase CLI 將規則部署到生產環境。 |