วิธีใช้ Firebase Auth กับ Firestore ใน Flutter
ฉันมีโปรแกรมกระพือขึ้นอยู่กับcloud_firestoreและfirebase_authผมเพิ่มผู้ใช้ (ปุ่มสีฟ้า) โดยการตรวจสอบสิทธิ์ Firebase และเก็บรหัสในรหัสเพื่อให้ผู้ใช้นี้เป็นผู้ดูแลระบบ , ผู้ใช้ปกติสามารถสร้างบัญชีโดยการประยุกต์ใช้ (อีเมลและรหัสผ่าน) ความ สิ่งที่ฉันต้องการคือให้แน่ใจว่าผู้ดูแลระบบเป็นคนเดียวที่สามารถลบข้อมูลออกจากฐานข้อมูลได้ในขณะที่ผู้ใช้ที่เหลือได้รับอนุญาตให้อ่านและเขียนเท่านั้นฉันจึงทำสิ่งนี้:
ฉันเปลี่ยนบทบาทในโครงการ Cloud Firestore เป็นสิ่งนี้:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
allow delete : if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
}
}
}
นี่เป็นเรื่องจริงหรือไม่และ Firebase จะไวต่อuid ได้อย่างไร
บางทีคำถามของฉันคือวิธีส่งuidพร้อมfirestoreคำขอ
ขอบคุณล่วงหน้า
คำตอบ
- หากคุณมี
writeกฎกฎนั้นจะอนุญาตให้สร้างอัปเดตและลบการดำเนินการ - หากคุณมีกฎหลายข้อสำหรับการดำเนินการเดียวกันกฎเหล่านั้นจะรวมเข้าด้วยกัน
ซึ่งหมายความว่าคุณallow read, write: if request.auth != nullอนุญาตให้ผู้ใช้ที่พิสูจน์ตัวตนสร้างอัปเดตและลบเอกสารใด ๆ ในฐานข้อมูล
หากคุณต้องการอนุญาตให้ผู้ใช้ที่ได้รับการพิสูจน์ตัวตนสร้างหรืออัปเดตเอกสาร แต่ต้องการให้ผู้ใช้ที่มี UID เฉพาะดังกล่าวลบเอกสารเท่านั้นคุณต้องตั้งชื่อการดำเนินการเหล่านั้นอย่างชัดเจน:
allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
สำหรับข้อมูลเต็มรูปแบบให้ดูที่เอกสารในการดำเนินงานที่ละเอียด