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

Để kiểm thử nhanh 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.

Rules Playground là một công cụ thuận tiện để sử dụng khi bạn khám phá các hành vi mới hoặc xác thực nhanh các quy tắc khi bạn viết chúng. Màn hình hiển thị xác nhận rằng quyền truy cập đã được cho phép hoặc bị từ chối theo mà bạn đã đặt cho mô phỏng.

Sử dụng Rules Playground

  1. Mở bảng điều khiển Firebase rồi chọn dự án của bạn.
  2. Sau đó, từ phần điều hướng sản phẩm, hãy thực hiện một trong các thao tác sau:
    • Chọn Realtime Database, Cloud Firestore hoặc Storage (Bộ nhớ), nếu phù hợp, rồi nhấp vào Quy tắc để chuyển đến Rules trình chỉnh sửa.
  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, hãy chọn các lựa chọn cho kiểm thử của bạn, bao gồm:
    • Kiểm thử lượt đọc hoặc ghi.
    • Một Vị trí cụ thể trong cơ sở dữ liệu hoặc bộ chứa lưu trữ của bạn, dưới dạng một đường dẫn.
    • Loại xác thực – người dùng ẩn danh chưa được xác thực, hoặc mã nhận dạng 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 có một trường cụ thể trước khi cho phép ghi).
  5. Nhấp vào Run (Chạy) rồi 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 trong Rules Playground

Kiểm thử hành vi của Rules Playground với tình huống mẫu sau và những quy tắc cơ bản.

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>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • Trong trình chỉnh sửa Rules, hãy thêm quy tắc nêu trên.

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

  • Bật Xác thực rồi chọn một loại xác thực trên Giảm dần số lượng Nhà cung cấp.

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

Kết quả 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ã nhận dạng 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 quyền đọc đã được cho phép hoặc từ chối thành công.