Xác thực nhanh các quy tắc bảo mật của Firebase

Để nhanh chóng kiểm thử Firebase Security Rules đã cập nhật trong bảng điều khiển Firebase, hãy sử dụng Sân chơi quy tắc.

Sân chơi quy tắc là một công cụ tiện lợi để sử dụng khi bạn khám phá các hành vi mới hoặc nhanh chóng xác thực các quy tắc khi viết. Công cụ này hiển thị một thông báo xác nhận rằng quyền truy cập đã được cho phép hoặc bị từ chối theo các tham số bạn đặt cho quá trình mô phỏng.

Sử dụng Sân chơi quy tắc

  1. Mở bảng điều khiển của Firebase rồi chọn dự án của bạn.
  2. Sau đó, trong phần điều hướng sản phẩm, hãy thực hiện một trong các bước sau:
    • Chọn Realtime Database, Cloud Firestore hoặc Storage, tuỳ theo nhu cầu, sau đó nhấp vào Rules để chuyển đến trình chỉnh sửa Security Rules.
  3. Sau khi chỉnh sửa, hãy nhấp vào Rules Playground trong trình chỉnh sửa.
  4. Trong phần cài đặt Rules Playground (Sân chơi quy tắc), hãy chọn các lựa chọn cho bài kiểm thử, bao gồm:
    • Kiểm thử thao tác đọc hoặc ghi.
    • Một Location (Vị trí) cụ thể trong cơ sở dữ liệu hoặc vùng lưu trữ dưới dạng đường dẫn.
    • Loại phương thức xác thực – chưa xác thực, người dùng ẩn danh đã xác thực hoặc một mã người dùng cụ thể.
    • Dữ liệu dành riêng cho tài liệu mà quy tắc của bạn tham chiếu cụ thể (ví dụ: nếu quy tắc của bạn yêu cầu phải có một trường cụ thể trước khi cho phép ghi).
  5. Nhấp vào Run (Chạy) và tìm kết quả trong biểu ngữ phía trên trình chỉnh sửa.

Tình huống mẫu về Sân chơi quy tắc

Kiểm thử hành vi của Sân chơi quy tắc bằng tình huống mẫu và các quy tắc cơ bản sau.

Cloud Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

Realtime Database

 // These rules grant access to a node matching the authenticated
 // user's ID from the Firebase auth token
 {
   "rules": {
     "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
 }
 

Cloud Storage

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/file.txt"
    match /user/{userId}/{fileName} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • Trong trình chỉnh sửa Security Rules, hãy thêm quy tắc đã cho.

  • Chọn get (nhận) trong trình đơn thả xuống Simulation type (Loại mô phỏng) rồi nhập một đường dẫn hợp lệ vào trường Location (Vị trí).

  • Bật Authentication (Xác thực) và chọn một loại phương thức xác thực trong trình đơn thả xuống Provider (Nhà cung cấp).

  • Nhập thông tin chi tiết về mã người dùng rồi nhấp vào Run (Chạy).

Kết quả của quá trình mô phỏng sẽ xuất hiện ở đầu trình chỉnh sửa. Tuỳ thuộc vào thông tin chi tiết về mã người dùng mà bạn đã nhập, bạn sẽ thấy một biểu ngữ xác nhận rằng thao tác đọc đã được cho phép hoặc bị từ chối.