У меня есть следующая функция в моем приложении Firebase.
Но каждый раз, когда я его развертываю, я получаю следующее сообщение:
142: 12 предупреждение Избегайте вложенных обещаний обещание / нет-nesting
problem 1 проблема (0 ошибок, 1 предупреждение)
exports.cronTravas = functions.database.ref('acoes').onUpdate((change, context) => {
const acoes = change.after.val();
var acoesNovas = [];
var travas = {}
for (var key in acoes) {
var item = {
'key': key,
'ult': acoes[key].ult
}
acoesNovas[key.substring(0, 4)] = item;
}
return admin.database().ref().child('opcoesNew').orderByChild('strike').once('value')
.then((snap) => {
const opcoes = snap.val();
travas['travasAlta'] = {}
for (var data in opcoes) {
travas['travasAlta'][data] = {}
for (var ativo in opcoes[data]) {
travas['travasAlta'][data][ativo] = {}
var i = 0;
for (var opcao in opcoes[data][ativo]) {
i++;
travas['travasAlta'][data][ativo] = calculaTravas(opcoes[data][ativo], acoesNovas[ativo].ult);
}
}
}
return travas;
})
.then(travas => {
return admin.database().ref().update(travas).catch((error) => {
return console.error(error);
});
})
});
Тем не менее, как я могу удалить это предупреждение?
И, если оно имеет значениеэта функция потребляет большое количество квоты, генерируя это сообщение за несколько минут:
Ошибка: превышена квота (выделение ЦП при вызовах функций: за день, выделение ЦП при вызовах функций: за день);чтобы увеличить квоты, включите биллинг в вашем проекте на ххххххх.Невозможно выполнить функцию.
Есть ли способ оптимизировать ее, чтобы я мог использовать эту свободную квоту, не увеличивая ее?(Я знаю, что могу обновить, но сейчас я действительно пытаюсь работать над бесплатным планом).
Моя база данных выглядит так:
acoes (8)
opcoes
-datas(4)
--acao(8)
---opcao(160)
Итак, внутри моих «операционных операторов»У меня есть 4 узла 'данных', и у каждого из них есть 8 узлов 'acao', и у каждого из них есть 160 узлов 'opcao'.Таким образом, у меня есть по крайней мере 5 тыс. Узлов, и я должен повторять их все каждый раз, когда обновляются узлы «acoes» (это 1 раз в минуту).Есть идеи как его улучшить?