N

Nokfa Docs

Current: framework-next.js

ไม่มีชื่อบทความ

ใช่เลย! 🎯 ปัญหานี้น่าจะมาจากที่คุณเขียน rules แบบ "จำกัดเฉพาะ collection newsletters" เท่านั้น แต่คุณอาจต้องการให้ อนุญาตทุก collection ใน Firestore ซึ่งทำได้โดยการใช้ wildcard ({document=**}) เพื่อ match ทุก document ทุก collection


✅ ตัวอย่าง Firestore Rules ที่อนุญาตทุกอย่าง (ไม่จำกัด collection):

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true; // ⚠️ ใช้สำหรับ dev/test เท่านั้น
    }
  }
}

💡 /{document=**} = ทุก path ภายใต้ /databases/(default)/documents ไม่ว่าลึกแค่ไหน


⚠️ คำเตือนความปลอดภัย:

allow read, write: if true; = เปิดหมดทั้งอ่าน-เขียน โดยไม่ต้อง login หรืออะไรเลย

เหมาะสำหรับ:

  • ทดสอบใน local หรือ development phase
  • หรือ backend-only ที่ไม่เปิดเผย public

ไม่เหมาะอย่างยิ่ง กับ production เพราะใครก็สามารถอ่าน/เขียนข้อมูลใน Firestore ได้


✅ ถ้าต้องการปลอดภัยขึ้นเล็กน้อย (แต่ยังกว้าง):

allow read, write: if request.auth != null;

= เปิดเฉพาะ user ที่ login Firebase แล้ว


🔐 ทางเลือกที่แนะนำในระยะยาว:

  • ระบุเฉพาะ collection ที่อนุญาต
  • ใช้ request.auth.uid เช็กว่าเป็นเจ้าของข้อมูล
  • ใช้ custom claims, roles, หรือ field-based access control

อยากให้ช่วยเขียน rule แบบปลอดภัยสำหรับโครงสร้างเฉพาะของคุณ (เช่น มี users, projects, messages) บอกโครงสร้าง Firestore มาหน่อยก็ได้นะ จะช่วยจัด rules ให้เหมาะเลยจ้ะ 😊