Firebase Security Rules มอบการปกป้องที่แข็งแกร่งและปรับแต่งได้อย่างเต็มที่สำหรับข้อมูลของคุณใน Cloud Firestore, Realtime Database และ Cloud Storage คุณเริ่มต้นใช้งานได้ง่ายๆ โดยRulesทำตามขั้นตอนในคำแนะนำนี้ เพื่อรักษาความปลอดภัยของข้อมูลและปกป้องแอปจากผู้ใช้ที่เป็นอันตราย
เข้าใจภาษาFirebase Security Rules
ก่อนเริ่มเขียนกฎ คุณควรใช้เวลาสักครู่เพื่อตรวจสอบFirebase Security Rulesภาษาเฉพาะสำหรับผลิตภัณฑ์ Firebase ที่คุณใช้
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 Storage คุณอาจต้องการรวม ฟิลด์ที่ระบุบทบาทที่เฉพาะเจาะจงสำหรับผู้ใช้แต่ละราย จากนั้นกฎจะอ่านฟิลด์ดังกล่าวและใช้เพื่อให้สิทธิ์เข้าถึงตามบทบาทได้ นอกจากนี้ คุณยังสร้างCloud Firestoreฐานข้อมูล จัดเก็บเกณฑ์การเข้าถึงในCloud Firestoreเอกสาร แล้วเข้าถึงเอกสารเหล่านั้นจาก Cloud Storage Security Rules ได้ด้วย
ขณะที่กำหนดสถาปัตยกรรมข้อมูลและกฎ โปรดคำนึงถึงลักษณะที่กฎจะ เรียงซ้อนกันหรือไม่เรียงซ้อนกัน ทั้งนี้ขึ้นอยู่กับผลิตภัณฑ์ เมื่อใช้ Realtime Database กฎจะทำงานจากบนลงล่าง โดยกฎที่ตื้นกว่าจะลบล้างกฎที่ลึกกว่า หาก กฎให้สิทธิ์อ่านหรือเขียนที่เส้นทางใดเส้นทางหนึ่ง ก็จะให้สิทธิ์เข้าถึง โหนดลูกทั้งหมดภายใต้เส้นทางนั้นด้วย ในทางตรงกันข้าม เมื่อใช้ Cloud Firestore และ Cloud Storage กฎจะมีผลบังคับใช้เฉพาะที่ระดับที่ระบุของลําดับชั้นข้อมูล และคุณต้องเขียนกฎที่ชัดเจนเพื่อควบคุมการเข้าถึงระดับต่างๆ
เข้าถึงกฎ
หากต้องการดู Rules ที่มีอยู่ ให้ใช้ Firebase CLI หรือคอนโซล Firebase ตรวจสอบว่าคุณแก้ไขกฎโดยใช้วิธีการเดียวกัน อย่างสม่ำเสมอ เพื่อหลีกเลี่ยงการเขียนทับการอัปเดตโดยไม่ได้ตั้งใจ หากไม่แน่ใจว่ากฎที่กำหนดไว้ในเครื่องแสดงถึงการอัปเดตล่าสุดหรือไม่ คอนโซล Firebase จะแสดงFirebase Security Rulesเวอร์ชันที่เพิ่งใช้งานล่าสุดเสมอ
หากต้องการเข้าถึงกฎจากคอนโซล Firebase ให้เลือกโปรเจ็กต์ จากนั้นคลิกพื้นที่เก็บข้อมูลในแผงการนำทางด้านซ้าย คลิก Rules เมื่อคุณอยู่ในฐานข้อมูลหรือที่เก็บข้อมูลที่ถูกต้อง
หากต้องการเข้าถึงกฎจาก Firebase CLI ให้ไปที่ไฟล์กฎที่ระบุไว้ในไฟล์ firebase.json
เขียนกฎพื้นฐาน
ขณะพัฒนาแอปและทำความเข้าใจ Rules ให้ลอง ใช้ Rules เพื่อจัดการกรณีการใช้งานพื้นฐานบางอย่าง ซึ่งรวมถึงกรณีต่อไปนี้
- เจ้าของเนื้อหาเท่านั้น: จำกัดการเข้าถึงเนื้อหาตามผู้ใช้
- สิทธิ์เข้าถึงแบบผสม: จำกัดสิทธิ์เข้าถึงระดับเขียนตามผู้ใช้ แต่ให้สิทธิ์เข้าถึงระดับอ่านแบบสาธารณะ
- การเข้าถึงตามแอตทริบิวต์: จำกัดการเข้าถึงกลุ่มหรือประเภทผู้ใช้
ทดสอบกฎ
หากคุณกำลังตั้งค่า Firebase Security Rules ในคอนโซล Firebase คุณสามารถใช้สนามเด็กเล่นของกฎ Firebase เพื่อตรวจสอบลักษณะการทำงานได้อย่างรวดเร็ว อย่างไรก็ตาม เราขอแนะนำให้ทดสอบอย่างละเอียดมากขึ้นด้วย Local Emulator Suite ก่อนที่จะนำ การเปลี่ยนแปลงไปใช้ในเวอร์ชันที่ใช้งานจริง
ทําให้กฎใช้งานได้
ใช้Firebaseคอนโซลหรือ FirebaseCLI เพื่อนำกฎไปใช้งานจริง ทำตามขั้นตอนที่ระบุไว้ใน จัดการและติดตั้งใช้งาน Firebase Security Rules