Catch up on everything we announced at this year's Firebase Summit. Learn more

เริ่มต้นใช้งานกฎความปลอดภัยของ Cloud Firestore

ด้วยกฎความปลอดภัยของ Cloud Firestore คุณสามารถมุ่งเน้นไปที่การสร้างประสบการณ์ผู้ใช้ที่ยอดเยี่ยมโดยไม่ต้องจัดการโครงสร้างพื้นฐานหรือเขียนการตรวจสอบสิทธิ์ฝั่งเซิร์ฟเวอร์และรหัสการให้สิทธิ์

กฎความปลอดภัยให้การควบคุมการเข้าถึงและการตรวจสอบข้อมูลในรูปแบบที่เรียบง่ายแต่แสดงออก เพื่อสร้างผู้ใช้ตามและตามบทบาทเข้าถึงระบบที่เก็บข้อมูลของผู้ใช้ปลอดภัยคุณจำเป็นต้องใช้ การตรวจสอบสิทธิ์ Firebase กับเมฆ FireStore กฎการรักษาความปลอดภัย

กฎความปลอดภัยรุ่น2

ตั้งแต่เดือนพฤษภาคม 2019 กฎความปลอดภัยของ Cloud Firestore เวอร์ชัน 2 พร้อมใช้งานแล้ว รุ่นที่ 2 ของกฎการเปลี่ยนแปลงพฤติกรรมของ สัญลักษณ์ recursive {name=**} คุณต้องใช้รุ่นที่ 2 ถ้าคุณวางแผนที่จะใช้ คำสั่งกลุ่มคอลเลกชัน คุณต้องเลือกในรุ่นที่ 2 โดยการ rules_version = '2'; บรรทัดแรกในกฎความปลอดภัยของคุณ:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

กฎการเขียน

ทั้งหมดเมฆ 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 มีโปรแกรมจำลองกฎที่คุณใช้ทดสอบชุดกฎได้ คุณสามารถเข้าถึงจำลองจาก แท็บกฎ ในส่วนเมฆ FireStore ของคอนโซล Firebase

เครื่องมือจำลองกฎช่วยให้คุณจำลองการอ่าน เขียน และลบที่ตรวจสอบสิทธิ์และไม่ได้ตรวจสอบสิทธิ์ เมื่อคุณจำลองคำขอตรวจสอบสิทธิ์ คุณสามารถสร้างและดูตัวอย่างโทเค็นการตรวจสอบสิทธิ์จากผู้ให้บริการต่างๆ คำขอจำลองจะทำงานโดยเทียบกับชุดกฎในตัวแก้ไข ไม่ใช่ชุดกฎที่ปรับใช้ในปัจจุบัน

กฎการทำให้ใช้งานได้

ก่อนที่คุณจะเริ่มใช้ Cloud Firestore จากแอปมือถือ คุณจะต้องปรับใช้กฎความปลอดภัย คุณสามารถปรับใช้กฎในคอนโซล Firebase หรือใช้ Firebase CLI

การอัปเดตกฎความปลอดภัยของ Cloud Firestore อาจใช้เวลาถึงหนึ่งนาทีจึงจะส่งผลต่อการสืบค้นและผู้ฟังใหม่ อย่างไรก็ตาม อาจใช้เวลาถึง 10 นาทีในการเผยแพร่การเปลี่ยนแปลงอย่างสมบูรณ์และส่งผลต่อผู้ฟังที่ใช้งานอยู่

ใช้คอนโซล Firebase

การตั้งค่าและปรับใช้ชุดแรกของกฎเปิด แท็บกฎ ในส่วนเมฆ 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

ขั้นตอนถัดไป