Firebase Security Rules มอบการปกป้องข้อมูลที่รัดกุมและปรับแต่งได้อย่างสมบูรณ์ใน Cloud Firestore, Realtime Database และ Cloud Storage คุณสามารถเริ่มต้นใช้งาน Security Rules ได้อย่างง่ายดายโดยทำตามขั้นตอนในคู่มือนี้ เพื่อรักษาความปลอดภัยของข้อมูลและปกป้องแอปจากผู้ใช้ที่เป็นอันตราย
พรอมต์ AI รายการสำหรับความช่วยเหลือจาก AI
หากต้องการความช่วยเหลือจาก AI ให้คัดลอกพรอมต์ด้านล่างลงในตัวแทนการเขียนโค้ด AI (เช่น Gemini ใน Android Studio, Antigravity, Claude Code, Codex และ Cursor) คุณสามารถปรับแต่งพรอมต์และทำซ้ำกับ Agent ได้ ดูข้อมูลการติดตั้งโดยละเอียดได้ที่ทักษะเอเจนต์ Firebase
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Cloud Storage data.
เข้าใจภาษา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
กำหนดโครงสร้างข้อมูลและกฎ
จัดโครงสร้างข้อมูลอย่างรอบคอบเพื่อให้สอดคล้องกับข้อกำหนดด้านความปลอดภัย
วิธีจัดโครงสร้างข้อมูลอาจส่งผลต่อวิธีจัดโครงสร้างและใช้กฎ เมื่อคุณกำหนดโครงสร้างข้อมูล ให้พิจารณาถึงผลกระทบที่อาจมีต่อโครงสร้าง Security Rules
เช่น ใน Cloud Storage คุณอาจต้องการรวมช่องที่ระบุบทบาทเฉพาะสำหรับผู้ใช้แต่ละราย จากนั้นกฎจะอ่านช่องดังกล่าวและใช้เพื่อมอบสิทธิ์เข้าถึงตามบทบาทได้ นอกจากนี้ คุณยังสร้างฐานข้อมูล Cloud Firestore, จัดเก็บเกณฑ์การเข้าถึงในเอกสาร Cloud Firestore แล้วเข้าถึงเอกสารเหล่านั้นจาก Cloud Storage Security Rules ได้ด้วย
เมื่อคุณกำหนดสถาปัตยกรรมข้อมูลและกฎ โปรดคำนึงถึงวิธีที่กฎจะเรียงซ้อนหรือไม่เรียงซ้อน ทั้งนี้ขึ้นอยู่กับผลิตภัณฑ์ของคุณ ใน Realtime Database กฎจะทำงานจากบนลงล่าง โดยกฎที่อยู่ตื้นกว่าจะลบล้างกฎที่อยู่ลึกกว่า หากกฎให้สิทธิ์อ่านหรือเขียนในเส้นทางหนึ่งๆ กฎนั้นจะให้สิทธิ์เข้าถึงโหนดย่อยทั้งหมดภายใต้เส้นทางนั้นด้วย ในทางตรงกันข้าม Cloud Firestore และ Cloud Storage จะใช้กฎเฉพาะในระดับที่ระบุของลำดับชั้นข้อมูล และคุณจะเขียนกฎที่ชัดเจนเพื่อควบคุมการเข้าถึงระดับต่างๆ
เข้าถึงกฎ
หากต้องการดู Security Rules ที่มีอยู่ ให้ใช้ Firebase CLI หรือคอนโซล Firebase ตรวจสอบว่าคุณแก้ไขกฎโดยใช้วิธีการเดียวกันอย่างสม่ำเสมอเพื่อหลีกเลี่ยงการเขียนทับการอัปเดตโดยไม่ตั้งใจ หากไม่แน่ใจว่ากฎที่กำหนดไว้ในเครื่องแสดงการอัปเดตล่าสุดหรือไม่ คอนโซล Firebase จะแสดงเวอร์ชันที่ติดตั้งใช้งานล่าสุดของ Firebase Security Rules เสมอ
หากต้องการเข้าถึงกฎจากคอนโซล Firebase ให้เลือกโปรเจ็กต์ แล้วคลิกพื้นที่เก็บข้อมูลในแผงการนำทางด้านซ้าย คลิก Security Rules เมื่อคุณอยู่ในฐานข้อมูลหรือที่เก็บข้อมูลที่ถูกต้อง
หากต้องการเข้าถึงกฎจาก Firebase CLI ให้ไปที่ไฟล์กฎที่ระบุไว้ในไฟล์ firebase.json
เขียนกฎพื้นฐาน
ขณะพัฒนาแอปและทำความเข้าใจ Security Rules ให้ลองใช้ Security Rules เพื่อจัดการกรณีการใช้งานพื้นฐานบางอย่าง ซึ่งรวมถึงกรณีต่อไปนี้
- เฉพาะเจ้าของเนื้อหา: จำกัดการเข้าถึงเนื้อหาตามผู้ใช้
- การเข้าถึงแบบผสม: จำกัดสิทธิ์การเขียนตามผู้ใช้ แต่อนุญาตให้สาธารณะเข้าถึงแบบอ่านได้
- การเข้าถึงตามแอตทริบิวต์: จำกัดการเข้าถึงสำหรับกลุ่มหรือประเภทผู้ใช้
การทดสอบกฎ
หากคุณกำลังตั้งค่า Firebase Security Rules ในคอนโซล Firebase คุณสามารถใช้ Firebase Rules Playground เพื่อตรวจสอบลักษณะการทำงานได้อย่างรวดเร็ว อย่างไรก็ตาม เราขอแนะนำให้ทดสอบอย่างละเอียดมากขึ้นด้วย Local Emulator Suite ก่อนที่จะทำให้การเปลี่ยนแปลงใช้งานได้จริง
ติดตั้งใช้งานกฎ
ใช้คอนโซล Firebase หรือ CLI ของ Firebase เพื่อทำให้กฎใช้งานได้จริง ทำตามขั้นตอนที่ระบุไว้ในจัดการและทำให้ Firebase Security Rules ใช้งานได้