เริ่มต้นใช้งานกฎความปลอดภัยของ Cloud Firestore

Cloud Firestore Security Rulesช่วยให้คุณมุ่งเน้นการสร้างประสบการณ์การใช้งานที่ยอดเยี่ยม โดยไม่ต้องจัดการโครงสร้างพื้นฐานหรือเขียนโค้ดการตรวจสอบสิทธิ์และการให้สิทธิ์ฝั่งเซิร์ฟเวอร์

กฎความปลอดภัยให้การควบคุมการเข้าถึงและการตรวจสอบข้อมูลในรูปแบบที่เรียบง่ายแต่ สื่อความหมาย หากต้องการสร้างระบบการเข้าถึงตามผู้ใช้และตามบทบาทที่ช่วยรักษาข้อมูลของผู้ใช้ให้ปลอดภัย คุณต้องใช้ Firebase Authentication กับ Cloud Firestore Security Rules





หากต้องการความช่วยเหลือจาก AI ให้คัดลอกพรอมต์ด้านล่างลงใน เอเจนต์การเขียนโค้ด AI (เช่น Gemini ใน Android Studio, Antigravity, Claude Code, Codex และ Cursor) คุณปรับแต่งพรอมต์และทำซ้ำกับเอเจนต์ได้ ดูข้อมูลการติดตั้งโดยละเอียดได้ที่ ทักษะเอเจนต์ Firebase

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Firestore data.

กฎความปลอดภัยเวอร์ชัน 2

ตั้งแต่เดือนพฤษภาคม 2019 เป็นต้นมา กฎความปลอดภัยของ Cloud Firestore เวอร์ชัน 2 พร้อมใช้งานแล้ว กฎเวอร์ชันที่ 2 จะเปลี่ยนลักษณะการทำงานของอักขระตัวแทนแบบเรียกซ้ำ {name=**} คุณต้องใช้เวอร์ชัน 2 หากวางแผนที่จะ ใช้การค้นหากลุ่มคอลเล็กชัน คุณต้องเลือกใช้ เวอร์ชัน 2 โดยกำหนดให้ rules_version = '2'; เป็นบรรทัดแรกในกฎความปลอดภัย

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

กฎการเขียน

คุณจะเขียนและจัดการ Cloud Firestore Security Rules ที่ปรับให้เหมาะกับโมเดลข้อมูลที่คุณ สร้างขึ้นสำหรับฐานข้อมูลเริ่มต้นและฐานข้อมูลเพิ่มเติมแต่ละรายการในโปรเจ็กต์

Cloud Firestore Security Rulesทั้งหมดประกอบด้วยคำสั่ง 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 มีเครื่องมือจำลองกฎที่คุณใช้ทดสอบชุดกฎได้ คุณเข้าถึงเครื่องจำลองได้ทั้งในคอนโซล Google Cloud และคอนโซล Firebase

เครื่องจำลองกฎช่วยให้คุณจำลองการอ่าน การเขียน และการลบที่ได้รับการตรวจสอบสิทธิ์และไม่ได้รับการตรวจสอบสิทธิ์ได้ เมื่อจำลองคำขอที่ผ่านการตรวจสอบสิทธิ์ คุณจะสร้าง และแสดงตัวอย่างโทเค็นการตรวจสอบสิทธิ์จากผู้ให้บริการต่างๆ ได้ คำขอจำลอง จะทำงานกับชุดกฎในเครื่องมือแก้ไข ไม่ใช่ชุดกฎที่ใช้งานจริง

ทดสอบกฎในคอนโซล Google Cloud

เครื่องจำลองกฎในคอนโซล Google Cloud พร้อมใช้งานสำหรับ Firestore ในโหมด Native ทั้งในรุ่น Standard และ Enterprise

สิทธิ์ที่จำเป็น

หากต้องการทดสอบกฎความปลอดภัยในคอนโซล Google Cloud คุณต้องมีสิทธิ์ IAM ต่อไปนี้

  • firebaserules.rulesets.test

วิธีจำลองคำขอฐานข้อมูลในคอนโซล Google Cloud

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
  2. คลิกรหัสของฐานข้อมูลที่ต้องการทดสอบ
  3. ในเมนูการนำทาง ให้คลิกความปลอดภัย
  4. คลิกแท็บเครื่องจำลอง
  5. ในรายการแบบเลื่อนลงประเภทการจำลอง ให้เลือกประเภทการดำเนินการต่อไปนี้ get, create, update หรือ delete
  6. ในช่องตำแหน่ง ให้ป้อนเส้นทางเอกสารที่ต้องการทดสอบ (เช่น users/user_123)
  7. (ไม่บังคับ) สำหรับคำขอสร้างและอัปเดต ให้คลิกสร้างเอกสาร เพื่อกำหนดค่าเพย์โหลดเอกสารจำลอง
  8. (ไม่บังคับ) หากต้องการจำลองคำขอที่ผ่านการตรวจสอบสิทธิ์ ให้เปิดการตรวจสอบสิทธิ์ เลือกผู้ให้บริการตรวจสอบสิทธิ์ (เช่น google.com หรือไม่ระบุตัวตน) และกำหนดค่าฟิลด์เพย์โหลดโทเค็น
  9. คลิกเรียกใช้

แผงการประเมินจะแสดงว่าระบบอนุญาตหรือปฏิเสธคำขอ รายการรายงานแบบละเอียดสำหรับแต่ละเงื่อนไขที่ประเมิน และไฮไลต์ระดับบรรทัด ในเครื่องมือแก้ไขโค้ด

ทดสอบกฎในคอนโซล Firebase

หากต้องการทดสอบกฎในคอนโซล Firebase ให้ไปที่ฐานข้อมูลและพื้นที่เก็บข้อมูล > Firestore > แท็บกฎ คลิกสนามเด็กเล่นของกฎ เพื่อเปิดการตั้งค่าเครื่องจำลอง เลือกตัวเลือกการจำลอง แล้วคลิก เรียกใช้

การติดตั้งใช้งานกฎ

ก่อนที่จะเริ่มใช้ Cloud Firestore จากแอปบนอุปกรณ์เคลื่อนที่ คุณจะต้อง ติดตั้งใช้งานกฎความปลอดภัย คุณสามารถติดตั้งใช้งานกฎในคอนโซล Firebase, ในคอนโซล Google Cloud, โดยใช้ Firebase CLI หรือด้วย Cloud Firestore REST API สำหรับการจัดการ

การอัปเดต Cloud Firestore Security Rules อาจใช้เวลาถึง 1 นาทีจึงจะมีผลกับคำค้นหาใหม่และ ผู้ฟัง อย่างไรก็ตาม ระบบอาจใช้เวลาถึง 10 นาทีในการเผยแพร่การเปลี่ยนแปลงอย่างเต็มรูปแบบ และส่งผลต่อผู้ฟังที่ใช้งานอยู่

ใช้คอนโซล Firebase

หากต้องการตั้งค่าและทำให้ใช้งานได้ชุดกฎแรกสำหรับฐานข้อมูลเริ่มต้นในโปรเจ็กต์ ให้ไปที่แท็บฐานข้อมูลและการจัดเก็บข้อมูล > Firestore > กฎในคอนโซล Firebase

หากสร้างฐานข้อมูลหลายรายการสำหรับโปรเจ็กต์ คุณสามารถทําให้ Cloud Firestore Security Rules ใช้งานได้สําหรับแต่ละฐานข้อมูล ในคอนโซล Firebase ให้ใช้ตัวเลือกฐานข้อมูลเพื่อสลับระหว่างฐานข้อมูลเริ่มต้นกับฐานข้อมูลเพิ่มเติม

เขียนกฎในโปรแกรมแก้ไขออนไลน์ แล้วคลิกเผยแพร่

ใช้คอนโซล Google Cloud

คุณสามารถจัดการและติดตั้งใช้งาน Cloud Firestore Security Rules ได้โดยตรงใน คอนโซล Google Cloud เครื่องมือแก้ไขกฎพร้อมใช้งานสำหรับ Firestore ในโหมด Native ทั้งในรุ่น Standard และ Enterprise

สิทธิ์ที่จำเป็น

หากต้องการจัดการและทำให้ใช้งานได้ซึ่งกฎความปลอดภัยในคอนโซล Google Cloud คุณต้องมีสิทธิ์ IAM ต่อไปนี้

  • firebaserules.releases.create
  • firebaserules.releases.delete
  • firebaserules.releases.update
  • firebaserules.rulesets.create
  • firebaserules.rulesets.delete
  • firebaserules.rulesets.list
  • firebaserules.rulesets.test (ต้องใช้เพื่อใช้เครื่องจำลองกฎ)

วิธีนำกฎไปใช้ในคอนโซล Google Cloud

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
  2. คลิกรหัสของฐานข้อมูลที่ต้องการจัดการ
  3. ในเมนูการนำทาง ให้คลิกความปลอดภัย
  4. คลิกแท็บกฎของ Firestore
  5. ดูกฎในเครื่องมือแก้ไขกฎ หากต้องการแก้ไข ให้คลิกชุดกฎใหม่หรือ โคลนชุดกฎ แล้วแก้ไขกฎ
  6. คลิกเผยแพร่เพื่อนำการเปลี่ยนแปลงไปใช้

นอกจากนี้ คุณยังดูชุดกฎก่อนหน้าในไทม์ไลน์ รวมถึงโคลนหรือกู้คืนชุดกฎเหล่านั้นได้ด้วย

ใช้ 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 rules for all configured databases
firebase deploy --only firestore

ปรับปรุงความปลอดภัยสำหรับ Cloud Storage

แอปของคุณจะได้รับประโยชน์จากฟีเจอร์ฐานข้อมูลที่มีประสิทธิภาพของ Cloud Firestore และฟีเจอร์การจัดเก็บและจัดการไฟล์ของ Cloud Storage เมื่อใช้ร่วมกัน ผลิตภัณฑ์เหล่านี้ยังช่วยเสริมความปลอดภัยของแอปด้วย เนื่องจาก Cloud Firestore สามารถบันทึกข้อกำหนดการให้สิทธิ์ที่กฎความปลอดภัยของ Firebase ใช้ได้กับทั้ง 2 ผลิตภัณฑ์ ดูข้อมูลเพิ่มเติมได้ที่คู่มือสำหรับ Cloud Storage

ขั้นตอนถัดไป