Javascript Firebase:分析触发器时出错:找不到模块';请求承诺';简单云函数

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非常简

想要实现移动站点的firebase专用方法,所以我决定为我的应用程序创建一个简单的API网关,这样我就可以调用云函数端点,而不是调用外部API并公开API密钥

我遵循了简单的hello world示例,结果还行

一旦我添加了谷歌示例中所述的请求承诺模块(来自翻译和url缩短示例),我就无法继续了。因为这就产生了

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中未列出的模块,您的代码将失败。

我遇到了相同的问题,并修复了它,同时安装了requestrequest 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模块,它们都来自不同的地方。非常感谢你的帮助!!