ไม่มีชื่อบทความ
ใช่เลย! 🎯 ปัญหานี้น่าจะมาจากที่คุณเขียน 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 ให้เหมาะเลยจ้ะ 😊