Para mayor claridad, tengo otras funciones en la nube que se ejecutan de manera intermitente (es decir, desde "frío" en alrededor de 2 a 6 segundos, y todas usan la misma configuración repetitiva de importar una instancia de administración y exportar la función como un módulo)
He visto otras publicaciones similares, pero esto realmente me está molestando. Tengo una función de nube así:
const admin = require('../AdminConfig'); const { reportError } = require('../ReportError'); module.exports = (event) => { const uid = event.params.uid; const snapshot = event.data; if (snapshot._newData === null ) { return null; } console.log('Create org begin running: ', Date.now()); const organisation = event.data.val(); const rootRef = admin.database().ref(); const ref = rootRef.child('/organisations').push(); const oid = ref.key; const userData = { level: 'owner', name: organisation.name, }; const orgShiftInfo = { name: organisation.name, startDay: organisation.startDay || 'Monday', }; const updatedData = {}; updatedData[`/users/${uid}/currentOrg`] = oid; updatedData[`/users/${uid}/organisations/${oid}`] = userData; updatedData[`/organisations/${oid}`] = organisation; updatedData[`/org_shift_info/${oid}`] = orgShiftInfo; rootRef.update(updatedData, (err) => { if (err) { return rootRef.child(`/users/${uid}/addOrgStatus`).set({ error: true }) .then(() => { console.log(`error adding organisation for ${uid}: `, err); return reportError(err, { uid }); }); } console.log('Create org wrote succesfully: ', Date.now()); return rootRef.child(`/users/${uid}/addOrgStatus`).set({ success: true }); }); }Entiendo lo del 'arranque en frío', pero creo que algo está muy mal porque tarda 25 segundos. Los registros no devuelven ningún error y son así:
¿Hay alguna forma más profunda en la que pueda depurar esto para tratar de averiguar por qué está tardando tanto? Está inutilizable por el momento. Muchas gracias.
Resuelto: Lo siento, no entendí un poco la API. ¡Debería haber visto el video de la promesa primero!
necesitaba poner
return rootRef.update...en vez de
rootRef.update...