Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

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

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

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

กฎความปลอดภัยรุ่นที่ 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

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