TKK_E32230814/railway-worker/SETUP_FIREBASE.md

131 lines
3.3 KiB
Markdown

# ⚙️ SETUP RAILWAY WORKER - FIREBASE CREDENTIALS
## 🔑 Cara Mendapatkan Firebase Credentials
### **Step 1: Download Service Account Key**
1. Buka **[Firebase Console](https://console.firebase.google.com)**
2. Pilih project: **project-ta-951b4**
3. Klik ⚙️ icon (Settings) → **Project Settings**
4. Tab **Service Accounts**
5. Klik button **"Generate New Private Key"**
6. Klik **"Generate Key"** → File JSON akan terdownload
---
### **Step 2: Extract Values dari JSON**
Buka file JSON yang didownload (misalnya: `project-ta-951b4-xxxxx.json`) dengan text editor.
**Copy values berikut:**
```json
{
"type": "service_account",
"project_id": "project-ta-951b4", COPY INI
"client_email": "firebase-adminsdk-xxxxx@project-ta-951b4.iam.gserviceaccount.com", COPY INI
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADA...\n-----END PRIVATE KEY-----\n", COPY INI
...
}
```
---
### **Step 3: Update File .env**
Edit file: `railway-worker/.env`
```env
FIREBASE_PROJECT_ID=project-ta-951b4
FIREBASE_CLIENT_EMAIL=firebase-adminsdk-xxxxx@project-ta-951b4.iam.gserviceaccount.com
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvQIBADA...\n-----END PRIVATE KEY-----\n"
FIREBASE_DATABASE_URL=https://project-ta-951b4-default-rtdb.firebaseio.com
```
**⚠️ PENTING untuk PRIVATE_KEY:**
- Harus dalam quotes `"`
- Harus ada `\n` (backslash-n), bukan newline sebenarnya
- Copy langsung dari JSON file (sudah format benar)
---
### **Step 4: Test Lokal (Optional)**
```powershell
cd railway-worker
node test-firebase-connection.js
```
**Expected output:**
```
✅ Firebase initialized
✅ DATA FOUND! Structure:
✅ DATA STRUCTURE VALID
```
---
### **Step 5: Set di Railway**
**Railway Dashboard → Service myreppril → Variables tab:**
Add 4 variables (tanpa quotes!):
| Variable | Value |
|----------|-------|
| `FIREBASE_PROJECT_ID` | `project-ta-951b4` |
| `FIREBASE_CLIENT_EMAIL` | `firebase-adminsdk-xxxxx@project-ta-951b4.iam.gserviceaccount.com` |
| `FIREBASE_PRIVATE_KEY` | `-----BEGIN PRIVATE KEY-----\nMIIEvQIBADA...\n-----END PRIVATE KEY-----\n` |
| `FIREBASE_DATABASE_URL` | `https://project-ta-951b4-default-rtdb.firebaseio.com` |
**Railway akan auto-redeploy setelah add variables!**
---
## 🚀 Setelah Setup
### **Check Railway Logs:**
Railway → Service myreppril → Tab **Logs**
**Harus muncul:**
```
🚀 Starting ApsGo Railway Worker...
📡 Firebase Project: project-ta-951b4
✅ Firebase Admin initialized
✅ Redis connected
✅ Waktu Mode scheduler started
```
---
## ⚠️ Troubleshooting
### **Error: "Firebase initialization failed"**
- Check PRIVATE_KEY format (harus dengan `\n`)
- Pastikan tidak ada extra spaces atau quotes di Railway Variables
- Regenerate key jika perlu
### **Error: "Redis connection failed"**
- Add Redis database di Railway (+ New → Database → Redis)
- Tunggu auto-inject variables
### **No logs at all in Railway**
- Set Root Directory = `railway-worker`
- Check Deployments tab untuk build errors
---
## 📞 Next Steps
Setelah .env file ready:
1. Test lokal: `node test-firebase-connection.js`
2. Set variables di Railway
3. Wait for auto-redeploy
4. Check Railway logs
**Jika masih stuck, screenshot:**
- Railway Variables tab
- Railway Deployments status
- Error message (if any)