我正在尝试查看是否可以将Firebase的Cloud Functions与Braintree集成。我根据the docs创建了一个云功能项目。
在项目目录中,我运行了npm install braintree
。
我将index.js
修改为测试目的如下:
const functions = require('firebase-functions');
var braintree = require("braintree");
var gateway = braintree.connect({
environment:
braintree.Environment.Sandbox,
merchantId: "useYourMerchantId",
publicKey: "useYourPublicKey",
privateKey: "useYourPrivateKey"
});
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-
functions
//
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
//gateway.clientToken.generate({}, function (err, response) {
//response.send(response.clientToken);
//});
});
当我尝试部署此测试功能时,我收到了错误
解析触发器时出错:无法找到模块'braintree'
我是Firebase,Cloud Functions和node.js的新手,非常感谢有关如何将Braintree导入Firebase Functions项目的任何输入。
答案 0 :(得分:4)
Firebase的Cloud Functions似乎没有启动braintree
模块。与大多数Node.js环境一样,Cloud Functions从package.json
读取依赖关系。当您使用npm
安装模块时,您可以通过向命令行添加package.json
将其写入--save
。所以:
npm install braintree --save
答案 1 :(得分:2)
您缺少Node.js包braintree
。
您的Firebase项目有一个名为functions
的目录。
在终端中,按functions
转到$ cd {your project dir}/functions
目录
然后npm i braintree --save
。
我希望它对你有所帮助。
答案 2 :(得分:0)
将当前目录更改为功能:-cd functions
然后使用npm在该文件夹中安装Braintree:-npm i braintree
然后导入Braintree:-var braintree = require('braintree');
现在一切正常。
注意:-如果您尚未在Firebase中启用付款功能,则http响应中会出现“ unexpectedError”错误。