Firebase Security Rules มอบการปกป้องที่แข็งแกร่งและปรับแต่งได้อย่างเต็มที่สำหรับข้อมูลของคุณใน Cloud Firestore, Realtime Database และ Cloud Storage คุณเริ่มต้นใช้งานได้ง่ายๆ โดยRulesทำตามขั้นตอนในคำแนะนำนี้ เพื่อรักษาความปลอดภัยของข้อมูลและปกป้องแอปจากผู้ใช้ที่เป็นอันตราย
เข้าใจภาษาFirebase Security Rules
ก่อนเริ่มเขียนกฎ คุณควรสละเวลาสักครู่เพื่อตรวจสอบFirebase Security Rulesภาษาเฉพาะสำหรับผลิตภัณฑ์ Firebase ที่คุณใช้
Realtime Database ใช้ไวยากรณ์ที่คล้ายกับ JavaScript และโครงสร้าง JSON สำหรับ
Rules หรือ Cloud Firestore และ Cloud Storage จะใช้ประโยชน์จากซูเปอร์เซ็ต
ของ Common Expression Language (CEL) ที่อิงตามคำสั่ง match
และ allow
ซึ่งกำหนดเงื่อนไขสำหรับการเข้าถึงที่เส้นทางที่กำหนด
ดูข้อมูลเพิ่มเติมเกี่ยวกับภาษา Firebase Security Rules
ตั้งค่า Authentication
โปรดระบุผู้ใช้ด้วย Firebase Authentication หากยังไม่ได้ดำเนินการ Firebase Authentication รองรับวิธีการตรวจสอบสิทธิ์ที่ใช้กันทั่วไปหลายวิธีและผสานรวมกับ Firebase Security Rules เพื่อให้ความสามารถในการยืนยันที่ครอบคลุม
คุณตั้งค่าข้อมูลการตรวจสอบสิทธิ์เพิ่มเติมที่กำหนดเองสำหรับแอปได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Firebase Security Rules และ Firebase Authentication
กำหนดโครงสร้างข้อมูลและกฎ
วิธีจัดโครงสร้างข้อมูลอาจส่งผลต่อวิธีจัดโครงสร้างและ ใช้กฎ ขณะที่กำหนดโครงสร้างข้อมูล ให้พิจารณาผลกระทบที่อาจเกิดขึ้นกับโครงสร้าง Rules
ตัวอย่างเช่น ใน Cloud Firestore คุณอาจต้องการรวมช่องที่ระบุ บทบาทที่เฉพาะเจาะจงสำหรับผู้ใช้แต่ละราย จากนั้นกฎจะอ่านฟิลด์นั้นและใช้เพื่อ ให้สิทธิ์เข้าถึงตามบทบาทได้
ขณะที่กำหนดสถาปัตยกรรมข้อมูลและกฎ โปรดทราบว่าหากกฎใดให้สิทธิ์เข้าถึงชุดข้อมูล Firebase Security Rules จะให้สิทธิ์เข้าถึงชุดข้อมูลนั้น กล่าวคือ คุณไม่สามารถจำกัดการเข้าถึงที่เส้นทางย่อยได้หากให้สิทธิ์เข้าถึงที่ ระดับสูงกว่าในลำดับชั้นของข้อมูล
เข้าถึงกฎ
หากต้องการดู Rules ที่มีอยู่ ให้ใช้ Firebase CLI หรือคอนโซล Firebase ตรวจสอบว่าคุณแก้ไขกฎโดยใช้วิธีการเดียวกัน อย่างสม่ำเสมอ เพื่อหลีกเลี่ยงการเขียนทับการอัปเดตโดยไม่ได้ตั้งใจ หากไม่แน่ใจว่ากฎที่กำหนดไว้ในเครื่องแสดงถึงการอัปเดตล่าสุดหรือไม่ คอนโซล Firebase จะแสดงFirebase Security Rulesเวอร์ชันที่เพิ่งใช้งานล่าสุดเสมอ
หากต้องการเข้าถึงกฎจากFirebaseคอนโซล ให้เลือกโปรเจ็กต์ แล้วไปที่ Realtime Database, Cloud Firestore หรือ Storage คลิกกฎเมื่ออยู่ในฐานข้อมูลหรือที่เก็บข้อมูล ที่ถูกต้อง
หากต้องการเข้าถึงกฎจาก Firebase CLI ให้ไปที่ไฟล์กฎที่ระบุไว้ใน ไฟล์ firebase.json
เขียนกฎพื้นฐาน
ขณะพัฒนาแอปและทำความเข้าใจ Rules ให้ลอง ใช้กฎความปลอดภัยพื้นฐาน 2-3 ข้อ ซึ่งรวมถึงกรณีการใช้งานต่อไปนี้
- เจ้าของเนื้อหาเท่านั้น: จำกัดการเข้าถึงเนื้อหาตามผู้ใช้
- สิทธิ์เข้าถึงแบบผสม: จำกัดสิทธิ์เข้าถึงระดับเขียนตามผู้ใช้ แต่ให้สิทธิ์เข้าถึงระดับอ่านแบบสาธารณะ
- การเข้าถึงตามแอตทริบิวต์: จำกัดการเข้าถึงกลุ่มหรือประเภทผู้ใช้
ทดสอบกฎ
หากต้องการตรวจสอบลักษณะการทำงานของแอปอย่างเต็มรูปแบบและยืนยันการกำหนดค่า Firebase Security Rules
ให้ใช้ Firebase Emulator เพื่อเรียกใช้และทำให้การทดสอบหน่วย
เป็นแบบอัตโนมัติในสภาพแวดล้อมในเครื่อง
หากคุณกำลังตั้งค่า Firebase Security Rules ในคอนโซล Firebase คุณสามารถใช้เครื่องจำลองกฎ Firebase เพื่อตรวจสอบลักษณะการทำงานได้อย่างรวดเร็ว อย่างไรก็ตาม เราขอแนะนำให้ทดสอบอย่างละเอียดเพิ่มเติมด้วยโปรแกรมจำลอง Firebase ก่อนที่จะนำการเปลี่ยนแปลงไปใช้ในเวอร์ชันที่ใช้งานจริง
ทําให้กฎใช้งานได้
ใช้Firebaseคอนโซลหรือ FirebaseCLI เพื่อนำกฎไปใช้งานจริง ทำตามขั้นตอนที่ระบุไว้ใน จัดการและติดตั้งใช้งาน Firebase Security Rules