const admin = require('firebase-admin'); const { Client } = require('pg'); async function sync() { try { console.log("๐Ÿš€ Strategic Sync Starting..."); const serviceAccount = JSON.parse(process.env.FIREBASE_SERVICE_ACCOUNT); admin.initializeApp({ credential: admin.credential.cert(serviceAccount) }); const db = admin.firestore(); const client = new Client({ connectionString: process.env.NEON_DATABASE_URL, ssl: { rejectUnauthorized: false } }); await client.connect(); console.log("โœ… Neon Connected!"); // Table แ€›แ€พแ€ญแ€™แ€›แ€พแ€ญแ€…แ€…แ€บแ€•แ€ผแ€ฎแ€ธ แ€™แ€›แ€พแ€ญแ€›แ€„แ€บ แ€‡แ€ฝแ€แ€บแ€†แ€ฑแ€ฌแ€€แ€บแ€™แ€šแ€บ await client.query(` CREATE TABLE IF NOT EXISTS neurons ( id SERIAL PRIMARY KEY, data JSONB NOT NULL, evolved_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); `); const snap = await db.collection('neurons').limit(5).get(); for (const doc of snap.docs) { // Colab แ€™แ€พแ€ฌแ€แ€ฝแ€ฑแ€ทแ€แ€ฒแ€ท evolved_at column แ€‘แ€ฒแ€€แ€ญแ€ฏ แ€‡แ€ฝแ€แ€บแ€‘แ€Šแ€ทแ€บแ€™แ€šแ€บ await client.query('INSERT INTO neurons (data, evolved_at) VALUES ($1, NOW())', [JSON.stringify(doc.data())]); } console.log("๐Ÿ SUCCESS: Mission Accomplished!"); await client.end(); } catch (err) { console.error("โŒ ERROR:", err.message); process.exit(1); } } sync();