【问题标题】:Integrate Cloud Functions for Firebase with Braintree将 Firebase 的云功能与 Braintree 集成
【发布时间】:2018-06-02 13:01:49
【问题描述】:

我正在尝试查看是否可以将 Cloud Functions for Firebase 与 Braintree 集成。我根据the docs为Cloud Functions创建了一个项目。 在我运行的项目目录中: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 项目的任何意见,我将不胜感激。

【问题讨论】:

  • 我认为您在这里一口气覆盖了太多内容。如果您是 Node.js 的新手,我建议您先从 Node.js 调用 Braintree API。如果您是 Firebase 的新手,我建议您通过它的 Node.js SDK(或它的 Web SDK,如果您更熟悉 Web 环境中的 JavaScript)与 Firebase 进行交互。一旦您对这两者有了经验,您将能够更好地将云功能添加到组合中,
  • 也就是说,错误可能原因的快速修复如下。 :-)
  • 很棒的帖子,因为它展示了如何从 Firebase 调用 BrainTree 的示例。我还没有看到任何其他简洁的例子来说明如何设置它。如果他们将这样的 sn-p 添加到官方 BrainTree 文档中会很好。很酷,谢谢。我发现要小心的一件事是,当您取消注释 gateway.clientToken.generate(..) 块时,请确保为第二个 response 参数提供唯一名称,因为它与外部对象不同 - 例如:gateway.clientToken.generate({}, function (err, gatewayResponse) {..}

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


【解决方案1】:

Cloud Functions for Firebase 似乎没有使用 braintree 模块。与大多数 Node.js 环境一样,Cloud Functions 从 package.json 读取依赖项。当您使用npm 安装模块时,您可以通过在命令行中添加--save 来告诉它也将其写入package.json。所以:

npm install braintree --save

【讨论】:

    【解决方案2】:

    您缺少 Node.js 包 braintree

    您的 Firebase 项目有一个名为 functions 的目录。 在终端中,通过$ cd {your project dir}/functions进入functions目录
    然后npm i braintree --save.
    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      将当前目录更改为函数:- cd functions 然后使用 npm 在该文件夹中安装 Braintree:-npm i braintree 然后导入braintree : - var braintree = require('braintree'); 现在一切正常。

      注意:- 如果您没有在 firebase 中启用付款,它会在 http 响应中出现“unexpectedError”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-23
        • 2017-12-24
        • 2021-01-13
        • 2018-06-25
        • 2016-07-30
        • 2018-10-04
        • 2020-02-24
        • 2021-11-30
        相关资源
        最近更新 更多