मेरे पास हल करने के लिए एक समान समस्या थी और अस्थायी समाधान . के रूप में मैंने फायरबेस एडमिन सर्विस अकाउंट के साथ ऐप इनिशियलाइज़ किया। फिर मेरे सर्वर पर फायरबेस संग्रह के परिवर्तनों के बारे में सुना और नए मूल्य पर पोस्टग्रेएसक्यूएल में मूल्यों को सम्मिलित \ अद्यतन किया गया।
ऐप को व्यवस्थापक के रूप में प्रारंभ करें और फायरबेस पर परिवर्तनों को सुनें:
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://yourfirebaseproject.firebaseio.com',
});
const db = admin.database();
db.ref('User').on('value', async (snapshot) => {
insertOrUpdate(User, 'users', snapshot.val());
});
PostgreSQL में डेटा डालें\अपडेट करें:
const insertOrUpdate = (model, tableName, data) => {
const firstData = data[0] ? data[0] : data;
return model.knex().raw(
knex(tableName).insert(data).toQuery() + ' ON CONFLICT ("id") DO UPDATE SET ' +
Object.keys(firstData).map((field) => `${field}=EXCLUDED.${field}`).join(', ')
);
};