在firebase函数上部署braintree服务器时出现意外错误

时间:2017-12-04 18:05:44

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

我在 Firebase功能上遇到 Braintree服务器节点SDK 的问题。

但奇怪的是,它在我的本地服务器上运行良好(在本地使用 firebase服务器)。

在firebase上,应用程序只在错误对象上返回 unexpectedError ,而不指定可理解的错误消息。

我甚至尝试将网关对象的超时设置为较高的值,但问题仍然存在。

这是我管理令牌生成的服务器代码的一部分:

const functions = require("firebase-functions");
const express = require("express");
const braintree = require("braintree");

var gateway = braintree.connect({
  environment: braintree.Environment.Sandbox,
  merchantId: "************",
  publicKey: "************",
  privateKey: "************"
});

app.get("/generate_token", function (req, res) {
  gateway.clientToken.generate({}, function (err, response) {
    if(response)
      res.send({error: false, token: response.clientToken});
    else
      res.send({error: true, errorObj: err, response: response});
  });
});

在本地运行此代码会返回正确的结果:

{"error": false, "token": "*********"}

但是在firebase上部署并运行它会返回错误:

{
  "error": true,
  "errorObj": {
    "name": "unexpectedError",
    "type": "unexpectedError"
  }
}

1 个答案:

答案 0 :(得分:1)

对于免费套餐(Spark)上的Firebase项目,将阻止与非Google受控端点的传出套接字连接。这是为了防止自动滥用。您的项目需要升级到Blaze计划以启用传出连接。用于开发目的的成本可能可以忽略不计,但在升级之前仍应检查pricing page