diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..411fe77 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "demo-braids-by-mira" + } +} diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..cf59470 --- /dev/null +++ b/firebase.json @@ -0,0 +1,23 @@ +{ + "firestore": { + "rules": "firestore.rules", + "indexes": "firestore.indexes.json" + }, + "storage": { + "rules": "storage.rules" + }, + "functions": [ + { + "source": "functions", + "codebase": "default", + "ignore": ["node_modules", ".git", "firebase-debug.log", "firebase-debug.*.log"] + } + ], + "emulators": { + "auth": { "port": 9099 }, + "functions": { "port": 5001 }, + "firestore": { "port": 8080 }, + "storage": { "port": 9199 }, + "ui": { "enabled": true } + } +} diff --git a/firestore.indexes.json b/firestore.indexes.json new file mode 100644 index 0000000..415027e --- /dev/null +++ b/firestore.indexes.json @@ -0,0 +1,4 @@ +{ + "indexes": [], + "fieldOverrides": [] +} diff --git a/firestore.rules b/firestore.rules new file mode 100644 index 0000000..622f80f --- /dev/null +++ b/firestore.rules @@ -0,0 +1,43 @@ +rules_version = '2'; +service cloud.firestore { + match /databases/{database}/documents { + function isAdmin() { + return request.auth != null && request.auth.uid == "dev-admin-placeholder-uid"; + } + + match /products/{productId} { + allow read: if true; + allow write: if isAdmin(); + } + + match /services/{serviceId} { + allow read: if true; + allow write: if isAdmin(); + } + + match /scheduleTemplate/{docId} { + allow read: if true; + allow write: if isAdmin(); + } + + match /scheduleExceptions/{date} { + allow read: if true; + allow write: if isAdmin(); + } + + match /bookedSlots/{date} { + allow read: if true; + allow write: if isAdmin(); + } + + match /bookings/{bookingId} { + allow create: if true; + allow read, update, delete: if isAdmin(); + } + + match /inquiries/{inquiryId} { + allow create: if true; + allow read, update, delete: if isAdmin(); + } + } +} diff --git a/storage.rules b/storage.rules new file mode 100644 index 0000000..9a4c907 --- /dev/null +++ b/storage.rules @@ -0,0 +1,23 @@ +rules_version = '2'; +service firebase.storage { + match /b/{bucket}/o { + function isAdmin() { + return request.auth != null && request.auth.uid == "dev-admin-placeholder-uid"; + } + + match /products/{fileName} { + allow read: if true; + allow write: if isAdmin(); + } + + match /styles/{fileName} { + allow read: if true; + allow write: if isAdmin(); + } + + match /about/{fileName} { + allow read: if true; + allow write: if isAdmin(); + } + } +}