2.4 KiB
2.4 KiB
🔥 Firebase Private Key Error - Quick Fix
❌ Error: "Failed to parse private key"
Root Cause: Format private key tidak benar atau corrupt.
✅ SOLUSI:
Step 1: Download Service Account Key BARU
- Buka Firebase Console
- Pilih project Project TA (project-ta-951b4)
- Klik ⚙️ Project Settings → Tab Service Accounts
- Klik Generate New Private Key
- Download file JSON
Step 2: Extract Private Key yang BENAR
Buka file JSON yang baru di-download, akan ada field private_key:
{
"type": "service_account",
"project_id": "project-ta-951b4",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIB...[sangat panjang]...-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-fbsvc@project-ta-951b4.iam.gserviceaccount.com",
...
}
Step 3: Copy EXACT Value
PENTING: Copy SELURUH value dari private_key field, INCLUDING:
- Opening quote
" - All
\ncharacters (jangan hapus!) - All key content
- Closing quote
"
Contoh yang BENAR:
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAA...[very long]...-----END PRIVATE KEY-----\n"
JANGAN LAKUKAN INI (SALAH):
- ❌ Menghapus
\n - ❌ Replace
\ndengan newline - ❌ Edit atau format private key
- ❌ Menambah spasi atau newline
Step 4: Update .env File
-
Edit file
.env:notepad f:\ApsGo\ApsGo\railway-worker\.env -
Replace baris
FIREBASE_PRIVATE_KEY=dengan value BARU yang di-copy dari JSON- Delete seluruh baris lama
- Paste baris baru (satu line, dengan \n tetap ada)
- Save file
-
Test lagi:
cd f:\ApsGo\ApsGo\railway-worker node test-firebase-direct.js
Alternative: Copy dari File JSON Secara Programmatic
Jika masih error, buat script helper:
cd f:\ApsGo\ApsGo\railway-worker
node -e "const fs=require('fs'); const key=JSON.parse(fs.readFileSync('PATH_TO_YOUR_DOWNLOADED_JSON')).private_key; console.log('FIREBASE_PRIVATE_KEY=\"' + key + '\"');"
Copy output dan paste ke .env
🎯 Quick Checklist
- Download NEW service account key dari Firebase
- Open JSON file
- Copy EXACT value dari
private_keyfield (with quotes and \n) - Paste ke .env file (one line)
- Test:
node test-firebase-direct.js
Expected result:
✅ Firebase Admin SDK initialized
✅ Successfully read /kontrol data