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

Bắt đầu với Quy tắc bảo mật Cloud Firestore

Với Quy tắc bảo mật Cloud Firestore, bạn có thể tập trung vào việc xây dựng trải nghiệm người dùng tuyệt vời mà không cần phải quản lý cơ sở hạ tầng hoặc viết mã ủy quyền và xác thực phía máy chủ.

Các quy tắc bảo mật cung cấp khả năng kiểm soát truy cập và xác thực dữ liệu ở một định dạng đơn giản nhưng rõ ràng. Để xây dựng hệ thống truy cập dựa trên vai trò mà giữ cho dữ liệu của người dùng an toàn dựa trên người dùng và, bạn cần sử dụng căn cứ hỏa lực xác thực với Cloud Security Rules FireStore.

Quy tắc bảo mật phiên bản 2

Kể từ tháng 5 năm 2019, phiên bản 2 của quy tắc bảo mật Cloud Firestore hiện đã có sẵn. Phiên bản 2 của các quy tắc thay đổi hành vi của các ký tự đại diện đệ quy {name=**} . Bạn phải sử dụng phiên bản 2 nếu bạn có kế hoạch để sử dụng các truy vấn nhóm bộ sưu tập . Bạn phải chọn tham gia vào phiên bản 2 bằng cách làm cho rules_version = '2'; dòng đầu tiên trong quy tắc bảo mật của bạn:

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

Viết quy tắc

Tất cả các FireStore Security Rules đám mây bao gồm match báo cáo, trong đó xác định các tài liệu trong cơ sở dữ liệu của bạn, và allow biểu thức, trong đó kiểm soát quyền truy cập vào các văn bản:

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

Mọi yêu cầu cơ sở dữ liệu từ thư viện khách hàng di động / web Cloud Firestore đều được đánh giá dựa trên các quy tắc bảo mật của bạn trước khi đọc hoặc ghi bất kỳ dữ liệu nào. Nếu các quy tắc từ chối quyền truy cập vào bất kỳ đường dẫn tài liệu nào được chỉ định, thì toàn bộ yêu cầu sẽ không thành công.

Dưới đây là một số ví dụ về các bộ quy tắc cơ bản. Mặc dù các quy tắc này hợp lệ, nhưng chúng không được khuyến nghị cho các ứng dụng sản xuất:

Yêu cầu xác thực

// 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;
    }
  }
}

Phủ nhận tất cả

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

Chấp nhận tất cả

// 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;
    }
  }
}

Các {document=**} con đường được sử dụng trong các ví dụ trên các trận đấu bất kỳ tài liệu trong toàn bộ cơ sở dữ liệu. Tiếp tục trên để hướng dẫn cho quy tắc bảo mật cơ cấu để học hỏi làm thế nào để phù hợp với đường dẫn dữ liệu cụ thể và làm việc với dữ liệu phân cấp.

Quy tắc kiểm tra

Cloud Firestore cung cấp trình mô phỏng quy tắc mà bạn có thể sử dụng để kiểm tra bộ quy tắc của mình. Bạn có thể truy cập vào các mô phỏng từ tab Rules trong phần đám mây FireStore của các firebase console.

Trình mô phỏng quy tắc cho phép bạn mô phỏng các lần đọc, ghi và xóa đã xác thực và chưa xác thực. Khi bạn mô phỏng một yêu cầu xác thực, bạn có thể xây dựng và xem trước mã thông báo xác thực từ các nhà cung cấp khác nhau. Các yêu cầu được mô phỏng chạy theo bộ quy tắc trong trình soạn thảo của bạn, không phải bộ quy tắc hiện được triển khai của bạn.

Triển khai các quy tắc

Trước khi có thể bắt đầu sử dụng Cloud Firestore từ ứng dụng dành cho thiết bị di động của mình, bạn cần triển khai các quy tắc bảo mật. Bạn có thể triển khai các quy tắc trong bảng điều khiển Firebase hoặc sử dụng Firebase CLI.

Các cập nhật đối với Quy tắc bảo mật Cloud Firestore có thể mất tới một phút để ảnh hưởng đến các truy vấn và trình nghe mới. Tuy nhiên, có thể mất tới 10 phút để tuyên truyền đầy đủ các thay đổi và ảnh hưởng đến bất kỳ người nghe đang hoạt động nào.

Sử dụng bảng điều khiển Firebase

Để thiết lập và triển khai bộ đầu tiên của quy tắc, mở tab Rules trong phần đám mây FireStore của các firebase console.

Viết quy tắc của bạn trong trình soạn thảo trực tuyến, sau đó nhấp vào Xuất bản.

Sử dụng Firebase CLI

Bạn cũng có thể triển khai quy tắc sử dụng các căn cứ hỏa lực CLI . Sử dụng CLI cho phép bạn giữ các quy tắc của mình dưới quyền kiểm soát phiên bản với mã ứng dụng của bạn và triển khai các quy tắc như một phần của quy trình triển khai hiện có của bạn.

// 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

Bước tiếp theo