Firebase:解析触发器时出错:找不到模块 'request-promise' 简单的云函数

Firebase: Error parsing triggers: Cannot find module 'request-promise' simple cloud function

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

我遵循了简单的 hello world 示例并且没问题。

一旦我按照 Google 示例(来自翻译和 url 缩短示例)中的说明添加了请求承诺模块,我就无法继续。因为出现了这个。

Error parsing triggers: Cannot find module 'request-promise'

使用 'request' 模块进行测试,结果相同。

我的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'); 它部署正常并显示要调用的 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"

如果您想在 Cloud Function 中使用 npm 模块,cd 到函数目录并 运行 命令 npm install request-promise 或任何模块名称。这会将模块添加到您的 package.json 文件中。然后,当您 运行 firebase deploy 时,该模块将在 Google 的云中供您的代码 运行ning 使用。如果您尝试使用未在 package.json 中列出的模块,您的代码将失败。

我遇到了同样的问题并通过安装 requestrequest-promise 修复了它。转到您的函数所在的目录并执行:

npm install --save request request-promise

--save 将负责更新您的 package.json。然后重新部署,它应该可以工作。

首先更改目录
1) cd functions

接下来安装 npm pack
2) npm install request-promise //不适合我,但你可以试试。
3) npm i child-process-promise //对我来说很好!
child-process-promise npm package link

终于可以运行:
4) firebase deploy

不要错过将 prod 依赖项放在 dependencies 键中,而不是将 devDependencies 放在 package.json