Javascript Firebase:分析触发器时出错:找不到模块';请求承诺';简单云函数
想要实现移动站点的firebase专用方法,所以我决定为我的应用程序创建一个简单的API网关,这样我就可以调用云函数端点,而不是调用外部API并公开API密钥 我遵循了简单的hello world示例,结果还行 一旦我添加了谷歌示例中所述的请求承诺模块(来自翻译和url缩短示例),我就无法继续了。因为这就产生了Javascript Firebase:分析触发器时出错:找不到模块';请求承诺';简单云函数,javascript,firebase,npm-request,Javascript,Firebase,Npm Request,想要实现移动站点的firebase专用方法,所以我决定为我的应用程序创建一个简单的API网关,这样我就可以调用云函数端点,而不是调用外部API并公开API密钥 我遵循了简单的hello world示例,结果还行 一旦我添加了谷歌示例中所述的请求承诺模块(来自翻译和url缩短示例),我就无法继续了。因为这就产生了 Error parsing triggers: Cannot find module 'request-promise' 使用“请求”模块进行测试,结果相同 我的index.js非常简
Error parsing triggers: Cannot find module 'request-promise'
使用“请求”模块进行测试,结果相同
我的index.js非常简单
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const request = require('request-promise');
// Create and Deploy Your First Cloud Functions
// https://firebase.google.com/docs/functions/write-firebase-functions
exports.wxData = functions.https.onRequest((request, response) => {
wwurl = "https://mycurrentendpoint.com/apicall.php?key=1234567890&lat="+request.query.lat+"&lon="+request.query.lon;
response.send(wwurl);
});
现在没有const request=require('request-promise')或const request=require('request')它部署ok并显示要调用的url
真的不知道该怎么办,我已经测试过创建一个新项目,只是发布了这个
这是我的package.json内容:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase serve --only functions",
"shell": "firebase experimental:functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~5.4.2",
"firebase-functions": "^0.7.1"
},
"private": true
}
在Firebase云函数中实现这一点有困难吗
谢谢你的帮助 无法找到请求承诺,因为它未安装。它与firebase分开,因此您需要将其添加到package.json中。我还要添加请求库 在依赖项中添加以下两行并运行npm安装
"request": "^2.x",
"request-promise": "^1.x"
如果您想在云功能中使用npm模块,请将
cd
发送到功能目录,并运行命令npm install request promise
或任何模块名称。这将把模块添加到package.json文件中。然后,当您运行firebase deploy
时,该模块将可供您在谷歌云中运行的代码使用。如果您尝试使用package.json中未列出的模块,您的代码将失败。我遇到了相同的问题,并修复了它,同时安装了request和request promise。转到函数所在的目录并执行:
npm install --save request request-promise
--save将负责更新package.json。然后重新部署,它应该会工作 第一次更改目录1)
cd功能
下次安装npm包2)
npm安装请求承诺
//对我不起作用,但你可以试试。3)
npm i子进程承诺
//为我工作很好最后您可以运行:
4)
firebase deploy
请不要错过将产品依赖项放在依赖项键中,而不是将devDependencies放在包中。json谢谢,所以请求不是firebase模块,是否有firebase模块用于此项或此项?对不起,我是新来的npm/expressrequest承诺不属于Firebase。你几乎可以使用任何npm模块,它们都来自不同的地方。非常感谢你的帮助!!