4.4 KiB
4.4 KiB
🚀 Quick Setup Firebase Jadwal ke kontrol_1
✅ Yang Sudah Diupdate
- ✅ Worker.js - Sekarang pakai path
/kontrol_1 - ✅ jadwal_service.dart - Flutter app pakai path
/kontrol_1 - ✅ Setup script - Script untuk push data otomatis ke Firebase
🔥 Cara Setup Data ke Firebase
Opsi 1: Via Script (Recommended - Otomatis)
Jalankan script untuk langsung push data ke Firebase:
cd f:\ApsGo\ApsGo\railway-worker
node setup-firebase-jadwal.js
Script akan:
- ✅ Connect ke Firebase kamu
- ✅ Push data jadwal ke
/kontrol_1 - ✅ Setup 5 jadwal (3 aktif, 2 nonaktif)
- ✅ Log summary hasil setup
Output yang diharapkan:
🚀 Starting Firebase setup...
📍 Path: /kontrol_1
✅ Firebase setup completed successfully!
📊 Summary:
- Path: /kontrol_1
- Mode Waktu: ENABLED
- Total Jadwal: 5
- Jadwal Aktif: 3
📝 Jadwal yang di-setup:
✅ jadwal_1: 08:00 → Pot [1, 2, 3] (60s)
✅ jadwal_2: 09:00 → Pot [4, 5] (45s)
✅ jadwal_3: 16:00 → Pot [1, 2, 3, 4, 5] (30s)
❌ jadwal_4: 12:00 → Pot [2, 4] (40s)
❌ jadwal_5: 18:00 → Pot [1, 5] (50s)
🎉 Done! Data sudah tersimpan di Firebase.
Opsi 2: Manual via Firebase Console
- Buka Firebase Console
- Pilih project ApsGo
- Klik Realtime Database
- Klik
+untuk add new node - Name:
kontrol_1 - Copy-paste JSON dari
firebase-structure-complete.json
📱 Test Flutter App
Setelah data di-setup, test Flutter app:
cd f:\ApsGo\ApsGo
flutter pub get
flutter run
Test checklist:
- Buka tab Kontrol
- Tap button Waktu
- Lihat list jadwal (harus ada 5 jadwal)
- Toggle mode waktu on/off
- Tambah jadwal baru
- Edit jadwal existing
- Delete jadwal
🔄 Deploy ke Railway
Setelah verify lokal OK, push ke Railway:
cd railway-worker
git add .
git commit -m "feat: Update to use kontrol_1 path + flexible jadwal system"
git push origin main
Railway akan auto-deploy dalam 2-3 menit.
📊 Verify di Railway Logs
Setelah deploy, check logs Railway:
🚀 Starting ApsGo Railway Worker...
📍 Kontrol Path: /kontrol_1
✅ Firebase /kontrol_1 readable - waktu mode: ENABLED
📋 Total Jadwal: 3
✅ jadwal_1: 08:00 → Pot [1, 2, 3]
✅ jadwal_2: 09:00 → Pot [4, 5]
✅ jadwal_3: 16:00 → Pot [1, 2, 3, 4, 5]
⚠️ Troubleshooting
Script error: "Firebase initialization failed"
Check:
- File
.envada di folderrailway-worker? - Environment variables lengkap?
FIREBASE_PROJECT_ID=... FIREBASE_CLIENT_EMAIL=... FIREBASE_PRIVATE_KEY=... FIREBASE_DATABASE_URL=...
Flutter app: "No jadwal found"
Check:
- Path di
jadwal_service.dart=kontrol_1? ✅ (sudah diupdate) - Data sudah di-push ke Firebase?
- Firebase rules allow read?
Worker tidak detect jadwal
Check:
- Worker sudah redeploy dengan code terbaru?
- Path di worker =
kontrol_1? ✅ (sudah diupdate) - Railway logs show path
/kontrol_1?
🔧 Ubah Path Kembali ke /kontrol
Jika mau pakai path /kontrol (bukan /kontrol_1):
Worker.js:
const FIREBASE_PATHS = {
kontrol: 'kontrol', // Ubah dari 'kontrol_1' ke 'kontrol'
jadwal_service.dart:
static const String kontrolPath = 'kontrol'; // Ubah dari 'kontrol_1'
Setup script:
await db.ref('kontrol').set(kontrolData); // Ubah dari 'kontrol_1'
📋 Summary Changes
Files modified:
- ✅
railway-worker/worker.js- Added FIREBASE_PATHS constant, updated all refs - ✅
lib/services/jadwal_service.dart- Updated path to kontrol_1 - ✅
railway-worker/setup-firebase-jadwal.js- New script untuk setup
Data structure:
Firebase Root
├── aktuator/
├── data/
├── history/
├── kontrol/ ← Your existing data (unchanged)
└── kontrol_1/ ← New data with flexible jadwal
├── waktu: true
├── sensor: false
├── jadwal_1/
├── jadwal_2/
└── jadwal_3/
🎯 Next Steps
- ✅ Run setup script:
node setup-firebase-jadwal.js - ✅ Verify data di Firebase Console
- ✅ Test Flutter app locally
- ✅ Commit & push to Railway
- ✅ Monitor Railway logs
- ✅ Test jadwal trigger di waktu yang ditentukan
Ready to go! 🚀🌱
Jika ada error atau pertanyaan, check logs atau tanya!