ด้วยกฎความปลอดภัยของ 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
ขั้นตอนถัดไป
- เรียนรู้วิธี จัดโครงสร้างกฎความปลอดภัย
- เขียน เงื่อนไขกฎความปลอดภัยที่กำหนดเอง
- อ่าน การอ้างอิงกฎความปลอดภัย