使用Braintree集成Firebase的云功能

时间:2017-12-20 02:44:36

标签: node.js google-cloud-functions braintree

我正在尝试查看是否可以将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项目的任何输入。

3 个答案:

答案 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”错误。