Javascript Firebase云函数-如何解决此错误:EconReset
这是我的密码Javascript Firebase云函数-如何解决此错误:EconReset,javascript,node.js,firebase,google-cloud-functions,firebase-cloud-messaging,Javascript,Node.js,Firebase,Google Cloud Functions,Firebase Cloud Messaging,这是我的密码 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const axios = require('axios'); admin.initializeApp(functions.config().functions); exports.sendNotifications = functions .region('europe-west1') .pubsub
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const axios = require('axios');
admin.initializeApp(functions.config().functions);
exports.sendNotifications = functions
.region('europe-west1')
.pubsub.schedule('every day 04:00').onRun(async context => {
axios.get('http://niksimoni.pythonanywhere.com/api/pulizie_domani')
.then(listOfStreets => {
const streets = listOfStreets.data.strade;
const promises = [];
for (const street of streets) {
const p = axios.get('http://niksimoni.pythonanywhere.com/api/data_pulizie?indirizzo=' + street)
.then(listOfHours => {
const ora = listOfHours.data.ora;
var topic = street.split(" ").join("-");
var message = {
data: {
title: street,
subtitle: 'Pulizia domani alle ' + ora,
},
topic: topic
};
admin.messaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
})
promises.push(p);
}
return Promise.all(promises);
})
.catch(error => {
console.log(error);
});
});
我尝试用request替换axios,但没有解决问题,无论我做了什么更改,我总是会出现以下错误:“发出请求时出错:在建立安全TLS连接之前,客户端网络套接字已断开连接。”。错误代码:EconReset'
我试着学习如何处理承诺,我想我明白了,但也许我错了。
任何帮助都将不胜感激始终返回云功能内部的承诺:
return axios.get('http://niksimoni.pythonanywhere.com/api/pulizie_domani')
这也是:
return admin.messaging().send(message)
否则,云函数将突然终止正在执行的代码。你可能也想对你的接球区做同样的事情。您可以在此处阅读更多信息:我是否必须遵守此退货声明:退货承诺。全部(承诺);?对即使在承诺链中丢失了一条return语句,也不能保证该代码堆栈在云函数中执行。不幸的是,即使进行了这些更改,我也会遇到相同的错误…返回响应:return admin.messaging().send(message)。然后((response)=>{return response;})通过在“TESTING”(测试)中执行响应,查看响应是否在输出中打印为数组。另外,在问题中添加新代码,以便我可以查看它。