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 中列出的模块,您的代码将失败。
我遇到了同样的问题并通过安装 request 和 request-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
中
想要实现移动站点的仅 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 中列出的模块,您的代码将失败。
我遇到了同样的问题并通过安装 request 和 request-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
中