set()
является асинхронным и возвращает обещание. Поскольку вы используете синтаксис async / await, вы должны использовать его, чтобы убедиться, что функция ожидает завершения записи. Если вы не хотите, чтобы обещание было выполнено, облачные функции могли бы прекратить и очистить asyn c работу до ее завершения.
exports.publishRequest = functions.database.ref("Request/{requestID}")
.onCreate( async (snap, context) =>{
console.log("process the request ref = " + context.params.requestID);
await sleep(30000);
try {
await snap.ref.child("internal").set(false)
console.log("request " + context.params.requestID + " updated !");
}
catch (error) {
console.error(error);
}
})
На самом деле, вам, вероятно, даже не следует пытаться перехватить ошибку - просто выпустите ошибку функции, если запись не удалась для какого-либо rason.