Firebase Setup Guide — Trent Wood Sync

Reviews • Admin Changes • Subscribers — har device pe live update | Step-by-step Urdu guide + Rules

🔥 Firestore + Auth
🎯 Kya hoga isse?
  • Customer ek mobile se review dale → dusre mobile / laptop pe turant dikhega (Firebase Firestore sync)
  • Owner admin panel se hero, price, bundle, promo bar change kare → sab customers ke devices pe turant update
  • Customer footer me email subscribe kare → turant Admin Panel → 👥 Subscribers me dikhega (Complete Data + CSV Export)

Bina Firebase ke bhi site chalegi (localStorage fallback), lekin sync ke liye Firebase zaroori hai.

1️⃣ Step 1 — Firebase Project Banao

A) firebase.google.com pe jao

  1. console.firebase.google.com → Add project
  2. Project name: Trent Wood (ya trent-wood-pk)
  3. Google Analytics: Disable kar sakte ho (optional) → Create project
  4. Project ready hote hi Continue → Dashboard khulega

💡 Gmail: a69975874@gmail.com se hi banao taake owner access rahe.

2️⃣ Step 2 — Web App Add Karo & Config Copy Karo

  1. Dashboard pe Web icon </> (Add app) → App nickname: Trent Wood Web → Register app
  2. Firebase SDK config dikhega — aisa hoga:
    const firebaseConfig = { apiKey: "AIzaSy....", authDomain: "trent-wood-pk.firebaseapp.com", projectId: "trent-wood-pk", storageBucket: "trent-wood-pk.appspot.com", messagingSenderId: "123456789", appId: "1:123456789:web:abc..." };
  3. Copy karo → apne computer pe trent-wood/assets/js/firebase-config.js kholo → YOUR_API_KEY wali lines ko apne real config se replace karo → Save → Upload.
⚠️ Important: firebase-config.js me YOUR_API_KEY ko real key se replace karna zaroori hai, warna sync nahi chalega (fallback localStorage chalega).
// Example filled firebase-config.js const firebaseConfig = { apiKey: "AIzaSyBxExample_Real_Key", authDomain: "trent-wood-pk.firebaseapp.com", projectId: "trent-wood-pk", storageBucket: "trent-wood-pk.appspot.com", messagingSenderId: "987654321", appId: "1:987654321:web:xyz123" }; const ADMIN_EMAIL = "a69975874@gmail.com";

3️⃣ Step 3 — Firestore Database Enable Karo

  1. Firebase Console → Left menu Build → Firestore Database → Create database
  2. Location: asia-south1 (Mumbai) ya asia-southeast1 (Pakistan ke qareeb) → Next
  3. Rules: Start in test mode select karo (baad me hum secure rules dalenge) → Create
  4. Database ban gaya — ab collections: reviews, subscribers, siteConfig auto banenge jab pehla data jayega.

4️⃣ Step 4 — Authentication Enable Karo (Admin ke liye)

  1. Left menu Build → Authentication → Get started
  2. Sign-in method → Email/Password → Enable → Save
  3. Users tab → Add user → Email: a69975874@gmail.com → Password: 03212863019 (ya jo admin password hai) → Add user
🔑 Kyun zaroori? Admin panel Firestore me write karne ke liye request.auth.token.email == "a69975874@gmail.com" check karta hai. Sirf ye user hi hero/products/subscribers delete kar sakta hai. Customers bina login ke review/subscribe kar sakte hain.

5️⃣ Step 5 — Firestore Rules Lagao (Sabse Important)

A) Rules kahan milengi?

Firestore Database → Rules tab → wahan code dikhega. Neeche wala code copy-paste karo.

B) Ye rules paste karo → Publish

rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { function isAdmin() { return request.auth != null && request.auth.token.email.lower() == "a69975874@gmail.com"; } // Site config — sab dekh sakte hain, sirf admin change kar sakta hai match /siteConfig/{docId} { allow read: if true; allow write: if isAdmin(); } // Reviews — sab read & create, sirf admin delete match /reviews/{reviewId} { allow read: if true; allow create: if request.resource.data.keys().hasAll(['productId','name','city','rating','text','date']) && request.resource.data.rating >= 1 && request.resource.data.rating <= 5 && request.resource.data.text.size() >= 10; allow update, delete: if isAdmin(); } // Subscribers — sab create, admin hi read/delete (testing ke liye read: if true rakha) match /subscribers/{subId} { allow read: if true; // testing ke baad isAdmin() kar dena allow create: if request.resource.data.keys().hasAll(['email','date','page']) && request.resource.data.email.matches(".*@.*"); allow update, delete: if isAdmin(); } } }
Open Firebase Console →

C) Rules ka matlab (simple):

  • allow read: if true → koi bhi dekh sakta hai (site pe products/reviews dikhenge)
  • allow create: if ... → customer bina login ke review/subscribe kar sakta hai, lekin validation hai (email me @, rating 1-5, text 10 chars)
  • isAdmin() → sirf a69975874@gmail.com se login admin hi delete/write kar sakta hai (Firestore Auth check)
Testing tip: Agar "permission denied" error aye to allow write: if true; karke test karo, phir wapas isAdmin() pe lao.

D) Publish karo

Publish dabate hi rules live — 10 sec me active.

6️⃣ Step 6 — Test Karo (3 cheezein)

Test 1 — Review Sync 1. Mobile se product page (e.g., Cream 7-Seater) pe review likho → Submit 2. Dusre laptop se same product kholo → review turant dikhe (Firestore listener) 3. Admin → Reviews tab → Delete → sab devices se delete
Test 2 — Admin Change Sync 1. Admin login (a69975874@gmail.com) → Hero me title change → Save 2. Customer ke mobile pe refresh — naya title turant 3. Firestore → siteConfig/main → updatedAt dekho
Test 3 — Subscribe Sync 1. Footer me kisi email se Subscribe → "Subscribed ✓" toast 2. Admin → 👥 Subscribers tab → Refresh → email + date + page dikhe 3. Firestore → subscribers collection → doc dikhega 4. Export CSV → Excel me kholo

Agar Firebase config YOUR_API_KEY pe ho to ye tests localStorage pe hi pass honge — config fill karne ke baad hi cross-device sync chalega.

7️⃣ Step 7 — Updated Files

Ye files update ki gayi hain — trent-wood-purana.zip me include:

  • assets/js/firebase-config.js — apna config yahan dalo
  • assets/js/trent-firebase.js — auto-sync logic (reviews, subscribers, siteConfig)
  • assets/js/firebase SDK (CDN) — har HTML ke <head> me add
  • firestore.rules — upar wala code (project root me)
  • admin.html — saveAdminData + showDashboard + loadReviews ab Firebase-aware
  • product-*.html — pickStar + handleAddReview ab Firebase + mobile card
  • index.html / category-*.html / bundle-*.html — handleSubscribe ab Firebase sync
Open Admin Panel → View Live Site →

❓ Common Questions

Q: Firebase free hai?

Haan — Spark plan free: 50k reads/day, 20k writes/day — Trent Wood ke liye kaafi. Badhe to Blaze pay-as-you-go.

Q: Bina Firebase ke chalega?

Haan — fallback localStorage — same browser me hi dikhega. Firebase ke baad hi cross-device sync.

Q: Rules me allow read: if true safe hai?

Reviews ke liye safe (public). Subscribers ke liye testing ke baad if isAdmin() kar do taake sirf owner dekh sake.

Q: Admin password change karna ho?

Firebase Console → Authentication → Users → a69975874@gmail.com → ⋮ → Edit / Reset password.

✅ Ready? Firebase Console pe project banao, config paste karo, rules publish karo — 5 minute me live sync! Koi step pe atko to batao, me aur detail bhej dunga.

Trent Wood • Johar Town F74R+9PX • +92 321 2863019 • a69975874@gmail.com • Instagram @trentwood_shop • TikTok @trendwood6