我正在为大学开发一些东西 我试图在firebase中的一个函数的帮助下设置一个cron作业。此函数通过API请求获取一些信息,并使用该信息执行某些操作。
我在node.js环境中进行了正常设置。
npm install firebase-admin
npm install firebase-functions
npm install jquery
之后我开始编码index.js
,这里是代码:
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
const ref = admin.database().ref()
var $ = require("jquery")
exports.llamada = functions.https.onRequest((req, res) => {
$.ajax({
url : "https://api.wunderground.com/api/*******/geolookup/conditions/q/zmw:00000.287.80028.json",
dataType : "jsonp",
success : function(parsed_json) {
var location = parsed_json['location']['city'];
var temp_c = parsed_json['current_observation']['temp_c'];
var solarradiation = parsed_json['current_observation']['solarradiation'];
var condicion = parsed_json['current_observation']['icon'];
}
});
function writeWeatherData(location, temp_c, solarradiation, condicion) {
firebase.database().ref('datos/').set({
localizacion: location,
temperatura: temp_c,
radiacion_solar: solarradiation,
clima: condicion
});
}
});

并且我在package.json中添加了下一个:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"dependencies": {
"firebase-admin": "^5.4.1",
"firebase-functions": "^0.7.0",
"jquery": "^3.2.1"
},
"private": true
}

我部署了这个功能,一切都很好。我使用这两个命令进行部署:
firebase deploy --only functions
firebase deploy
在两种情况下都正确部署了该功能。
之后我提出了一个请求,所以我可以测试函数并得到错误
错误:无法处理请求。
然后我检查了firebase函数控制台上的日志,这就是它显示的内容:
TypeError: $.ajax is not a function
at exports.llamada.functions.https.onRequest (/user_code/index.js:12:5)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:26:41)
at /var/tmp/worker/worker.js:635:7
at /var/tmp/worker/worker.js:619:9
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
感谢任何形式的帮助!