$ .ajax不是函数/ firebase函数

时间:2017-10-07 01:31:48

标签: jquery ajax firebase google-cloud-functions

我正在为大学开发一些东西 我试图在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)

我不正确地请求jquery模块吗?因为好像编译器不理解$ .ajax

感谢任何形式的帮助!

0 个答案:

没有答案