Cloud Firestore Security Rules จะช่วยให้คุณมุ่งเน้นที่การสร้างผู้ใช้ที่ยอดเยี่ยมได้ โดยไม่ต้องจัดการโครงสร้างพื้นฐานหรือเขียนฝั่งเซิร์ฟเวอร์ การตรวจสอบสิทธิ์และรหัสการให้สิทธิ์
กฎความปลอดภัยช่วยให้การควบคุมการเข้าถึงและการตรวจสอบข้อมูลเป็นเรื่องง่าย ที่บ่งบอกความเป็นคุณ ในการสร้างระบบการเข้าถึงตามบทบาทและผู้ใช้ที่ทำให้ ผู้ใช้ คุณต้องใช้Firebase การตรวจสอบสิทธิ์กับ Cloud Firestore Security Rules
กฎความปลอดภัยเวอร์ชัน 2
กฎความปลอดภัย Cloud Firestore เวอร์ชัน 2 ตั้งแต่เดือนพฤษภาคม 2019 เป็นต้นไป
พร้อมใช้งาน กฎเวอร์ชัน 2 จะเปลี่ยนลักษณะการทำงานของ recursive
ไวลด์การ์ด {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 มีเครื่องจำลองกฎที่ใช้ทดสอบกฎได้ คุณเข้าถึงเครื่องจำลองได้จากแท็บกฎใน ส่วน Cloud Firestore ของคอนโซล Firebase
เครื่องมือจำลองกฎจะให้คุณจำลองการอ่านที่ตรวจสอบสิทธิ์แล้วและไม่ผ่านการตรวจสอบสิทธิ์ เขียนและลบ เมื่อคุณจำลองคำขอที่ตรวจสอบสิทธิ์แล้ว คุณสามารถสร้าง และดูตัวอย่างโทเค็นการตรวจสอบสิทธิ์จากผู้ให้บริการรายต่างๆ การเรียกใช้คำขอจำลอง เทียบกับชุดกฎในเครื่องมือแก้ไข ไม่ใช่ชุดกฎที่ใช้งานอยู่ในปัจจุบัน
การใช้กฎ
ก่อนที่จะเริ่มใช้ Cloud Firestore จากแอปบนอุปกรณ์เคลื่อนที่ คุณจะต้องมี ในการทำให้กฎความปลอดภัยใช้งานได้ คุณสามารถทำให้กฎใช้งานได้ในคอนโซล Firebase ด้วย Firebase CLI หรือด้วย Cloud Firestore Management REST API
การอัปเดต Cloud Firestore Security Rules อาจใช้เวลาถึง 1 นาทีจึงจะส่งผลต่อคำค้นหาใหม่และ Listener ของคุณ แต่อาจใช้เวลาถึง 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 rules for all configured databases
firebase deploy --only firestore
เพิ่มความปลอดภัยให้กับ Cloud Storage
แอปของคุณจะได้รับประโยชน์จากฟีเจอร์ฐานข้อมูลที่มีประสิทธิภาพของ Cloud Firestore รวมถึงพื้นที่เก็บข้อมูลไฟล์และฟีเจอร์การจัดการของ Cloud Storage ใช้แล้ว ผลิตภัณฑ์เหล่านี้จะเสริมความปลอดภัยของแอปด้วย เนื่องจาก Cloud Firestore สามารถบันทึกข้อกำหนดการให้สิทธิ์ที่กฎการรักษาความปลอดภัยของ Firebase ใช้งานได้ สำหรับทั้ง 2 ผลิตภัณฑ์ ดูข้อมูลเพิ่มเติมได้ในคำแนะนำสำหรับ Cloud Storage
ขั้นตอนถัดไป
- ดูวิธีจัดโครงสร้างกฎความปลอดภัย
- เขียนเงื่อนไขของกฎความปลอดภัยที่กำหนดเอง
- โปรดอ่านข้อมูลอ้างอิงกฎความปลอดภัย