开始使用 Cloud Firestore 安全规则

利用 Cloud Firestore 安全规则,您可以专注于构建良好的用户体验,而无需管理基础架构或编写服务器端身份验证和授权代码。

安全规则以简单明了的格式提供访问控制和数据验证。要构建基于用户和基于角色的访问系统来确保用户的数据安全,您需要将 Firebase 身份验证与 Cloud Firestore 安全规则结合使用。

编写规则

所有 Cloud 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.uid != 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。您可以在 Firebase 控制台中或使用 Firebase CLI 部署规则。

使用 Firebase 控制台

要设置和部署您的第一组规则,请在 Firebase 控制台的“Cloud Firestore”部分打开规则标签

使用在线编辑器编写规则,然后点击发布

使用 Firebase CLI

您还可以使用 Firebase 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

后续步骤

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面