Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

開始使用 Cloud Firestore 安全規則

借助 Cloud Firestore 安全規則,您可以專注於打造出色的用戶體驗,而無需管理基礎架構或編寫服務器端身份驗證和授權代碼。

安全規則以簡單而富有表現力的格式提供訪問控制和數據驗證。構建基於用戶的,並且保持用戶的數據安全的基於角色的訪問系統,你需要使用火力地堡認證與雲計算公司的FireStore安全規則。

安全規則版本 2

自 2019 年 5 月起,Cloud Firestore 安全規則的第 2 版現已可用。規則2版改變的行為遞歸通配符{name=**}如果你打算使用,則必須使用版本2 ,收集小組查詢。你必須做選擇加入2版本rules_version = '2';安全規則中的第一行:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

編寫規則

所有的雲安全的FireStore規則包括match語句,確定文件在你的數據庫,並allow表達,這些文件其中控制訪問:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

在讀取或寫入任何數據之前,會根據您的安全規則評估來自 Cloud Firestore 移動/網絡客戶端庫的每個數據庫請求。如果規則拒絕訪問任何指定的文檔路徑,則整個請求都會失敗。

下面是一些基本規則集的示例。雖然這些規則有效,但不建議將它們用於生產應用程序:

需要驗證

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

全部拒絕

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

允許所有

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

{document=**}在上面的匹配的實施例在整個數據庫中的任何文件所使用的路徑。請繼續閱讀指南結構安全規則,以了解如何配合分層數據的特定數據路徑和工作。

測試規則

Cloud Firestore 提供了一個規則模擬器,您可以使用它來測試您的規則集。您可以從訪問模擬器規則選項卡中的火力地堡控制台的雲計算公司的FireStore部分。

規則模擬器允許您模擬經過身份驗證和未經身份驗證的讀取、寫入和刪除。當您模擬經過身份驗證的請求時,您可以構建和預覽來自各種提供商的身份驗證令牌。模擬請求針對編輯器中的規則集運行,而不是針對您當前部署的規則集。

部署規則

在開始通過移動應用使用 Cloud Firestore 之前,您需要部署安全規則。您可以在 Firebase 控制台中或使用 Firebase CLI 部署規則。

Cloud Firestore 安全規則的更新最多可能需要一分鐘才能影響新的查詢和偵聽器。但是,完全傳播更改並影響任何活動偵聽器可能需要長達 10 分鐘的時間。

使用 Firebase 控制台

要建立和部署第一套規則,打開規則選項卡中的火力地堡控制台的雲計算公司的FireStore部分。

寫在網上編輯您的規則,然後單擊發布

使用 Firebase CLI

您也可以部署使用規則火力地堡CLI 。使用 CLI,您可以將規則與應用程序代碼一起進行版本控制,並將規則部署為現有部署過程的一部分。

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy your .rules file
firebase deploy --only firestore:rules

下一步