Tôi gặp sự cố tương tự cần giải quyết và là giải pháp tạm thời Tôi đã khởi chạy ứng dụng với dịch vụ quản trị firebaseAccount. Sau đó, lắng nghe các thay đổi của bộ sưu tập firebase trên máy chủ của tôi và trên giá trị mới đã nhận được chèn vào \ đã cập nhật các giá trị trong PostgreSQL.
Khởi tạo ứng dụng với tư cách quản trị viên và lắng nghe các thay đổi trên firebase:
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());
});
Chèn \ cập nhật dữ liệu vào 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(', ')
);
};