Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

กฎความปลอดภัยรุ่น2

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

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

กฎการเขียน

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

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

กฎการทำให้ใช้งานได้

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

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

ใช้คอนโซล Firebase

ในการตั้งค่าและปรับใช้กฎชุดแรกของคุณ ให้เปิด แท็บ กฎ ในส่วน Cloud Firestore ของคอนโซล Firebase

เขียนกฎของคุณในเครื่องมือแก้ไขออนไลน์ จากนั้นคลิก เผยแพร่

ใช้ 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

เพิ่มความปลอดภัยสำหรับ Cloud Storage

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

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